我需要写一个物理模拟软件,我需要用到pseudo-random generator written by D.Knuth ,因为它最适合我的需要。
虽然我知道如何在硬代码块(仅仅是#include "rng-double.c")中使用它,但我不太明白如何将它包含在需要它的模块化程序中main 和一些库内部,然后我通过头文件链接回 main。
我唯一需要的函数是 ranf_start(seed) 来为生成器播种,以及 ranf_arr_next() 来生成下一个数字。
我得到了一系列的
multiple definitions of 'foo'
几乎适用于随机数生成器代码中定义的每个函数。
我不是专家,所以我发现自己几乎陷入了死胡同。有出路吗?我目前正在尝试为 rng 编写一个头文件,但我还没有成功。
非常感谢大家。 ~J
编辑: 从第一个答案来看,我需要编写头文件。我为生成器中的大多数函数都这样做了,但我无法为实际生成数字的函数编写正确的代码。我应该如何为这样定义的函数编写 header ?
#define ranf_arr_next() (*ranf_arr_ptr>=0? *ranf_arr_ptr++: ranf_arr_cycle())
最佳答案
您不包含 .c 文件,而是包含相应的头文件,其中包含您的函数声明。 .c 文件将与其余文件一起编译。
关于c - 使用 D.Knuth 伪随机生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954195/