初始化值是在编译时还是运行时计算的?

mar*_*arg 5 c++ runtime compile-time variable-initialization

如果我有一个使用该rand()函数作为其初始化值的函数,那么当程序编译时,或者函数运行时,是否会找到该值?

说:

int function(int init = rand()){
  return init;
}
Run Code Online (Sandbox Code Playgroud)

如果在编译时找到它,我怎样才能使初始化成为动态的?我想我会NULL用作初始化值,但我如何区分NULLinit = 0

eug*_*che 6

该值在运行时计算.

你总是可以创建一个小程序,并在练习中检查:

int main() {
    srand( time(NULL) );
    std::cout << function() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)