我需要编写一个物理模拟软件,我需要使用D.Knuth 编写的伪随机生成器,因为它最适合我的需求。
虽然我知道如何在硬代码块中使用它(仅仅是#include“rng-double.c”),但我不太明白如何将它包含在一个模块化程序中,在主程序和主程序中都需要它在一些库中,然后我通过头文件链接回主库。
我需要的唯一函数是 ranf_start(seed) 来播种生成器和 ranf_arr_next() 来生成下一个数字。
我得到了一个很长的系列
multiple definitions of 'foo'
几乎适用于随机数生成器代码中定义的每个函数。
我不是专家,所以我发现自己几乎处于死胡同。有出路吗?我目前正在尝试为 rng 编写一个头文件,尽管我还没有成功。
非常感谢大家。~J
编辑:从第一个答案所说,我需要编写头文件。我为生成器中的大多数函数都这样做了,但我无法为实际生成数字的函数编写它。我应该如何为这样定义的函数编写标题?
#define ranf_arr_next() (*ranf_arr_ptr>=0? *ranf_arr_ptr++: ranf_arr_cycle())