【发布时间】:2015-09-25 18:55:43
【问题描述】:
我的程序包含一个使用rand() 的函数。该函数将被多次调用,因此我不能将srand() 放在函数的开头。现在,有没有一个通用的规则建议srand()应该放在函数的头文件中,还是放在主函数的开头?
我的理解是两者的工作方式相同。唯一的区别是,如果我想在将来重用该函数,在标头中包含 srand() 会使函数更加独立,但我最终可能会得到多个标头都包含 srand()。
--编辑--
是的,我的意思是这样的
/*header.h*/
srand();
void my_funciton();
这样就不行了?
【问题讨论】:
-
头文件不应包含可执行代码。只是函数定义。
-
如果你想用一组可预测的随机数做一些测试会发生什么?将
srand()放在标题中将使这成为不可能。 -
“将 srand 放入头文件”是什么意思?如果标题,您可以添加代码 sn-p 显示相关部分吗?
-
@MarcB 标头中的可执行代码不一定是坏的。甚至还有 C 关键字
inline用于在头文件中包含函数定义(而不仅仅是声明,我假设你的意思是)。 -
@hyde - 但是标题中的代码不会因为
#included而被执行;我认为这就是 OP 所希望的。
标签: c header-files srand