首页
社区
课程
招聘
未解决 [求助]如何编译时候生成随机数
发表于: 2018-12-4 00:09 2117

未解决 [求助]如何编译时候生成随机数

2018-12-4 00:09
2117
#define random(x) (rand()%x)  如何每次编译都生成一个不同的rand?不要动态运行计算出来的,在编译展开时候就生成一个随机数,最后生成的机器码类似于mov rax,8537256984664 这样的一段随机数,每次编译都不一样

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

编译的时候的话, 考虑利用 __TIME____DATE__ 算出 unix time, 然后用它作为 seed 实现个随机数?

 

最后于 2018-12-4 09:08 被junkboy编辑 ,原因: markdown
2018-12-4 09:00
2
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
反汇编后转换时间戳的算法好像也被编译进去了,可以让他在编译时就把结果值算好吗
2018-12-4 14:31
0
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
晚风a 反汇编后转换时间戳的算法好像也被编译进去了,可以让他在编译时就把结果值算好吗
gcc 和 clang 都是可以的,vs2017 你可以换成 clang 的 platform 试一下。
2018-12-4 16:28
0
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

我试了下, vs2017 如果用 v141 编译就如果你截图这样的结果, 但如果用 v141_xp 或者说 v140(vs2015) 以下的 platform 编译就是直接是结果

 

(又或者 v141 下, 选择 c/c++ - 高级 - 编译为 - /TC, 原理不懂, 等楼下大佬解惑)

 

 

 

测试了图中标出的两个 platform 都符合你的要求, 可以试一下

最后于 2018-12-4 16:49 被junkboy编辑 ,原因:
2018-12-4 16:44
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
搞错了..VS2015平台工作集以下是吧..我刚才用2015也是一样的机器码,我弄下2010试试
最后于 2018-12-4 20:52 被晚风a编辑 ,原因:
2018-12-4 20:46
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
总之非常感谢 @junkboy 你的帮助   - -
2018-12-4 20:59
0
游客
登录 | 注册 方可回帖
返回
//