Будет ли значение инициализации вычисляться во время компиляции или во время выполнения? - PullRequest
5 голосов
/ 11 августа 2011

если у меня есть функция, которая использует функцию rand() в качестве значения инициализации, будет ли это значение найдено при компиляции программы или при запуске функции?

говорят:

int function(int init = rand()){
  return init;
}

если он найден во время компиляции, как я могу сделать инициализацию динамической? Я думаю, я бы использовал NULL в качестве значения инициализации, но как я могу сказать разницу между NULL и init = 0?

1 Ответ

6 голосов
/ 11 августа 2011

Значение вычисляется во время выполнения.

Вы всегда можете создать крошечную программу и проверить это на практике:

int main() {
    srand( time(NULL) );
    std::cout << function() << std::endl;
}
...