вычисление постоянных библиотечных функций во время компиляции - PullRequest
2 голосов
/ 16 июня 2011

Я хочу использовать постоянную Больцмана в своих функциях. Я использую следующий код для объявления константы Больцмана

const double boltzmann_constant = 1.3806503 * pow (10,-23);

Будет ли это рассчитываться во время самой компиляции? Если сейчас, как я должен убедиться, что он рассчитывается во время компиляции? Любой другой способ объявить константу?

1 Ответ

3 голосов
/ 16 июня 2011

Функция pow() вряд ли будет рассчитана во время компиляции. Однако запрошенная операция прямо выражена в научной нотации, стандартном аспекте чисел с плавающей запятой:

const double boltzmann_constant = 1.3806503e-23;

Для более сложной ситуации, такой как sin(M_PI / 3), может быть полезно написать программу для вычисления и отображения таких значений, чтобы их можно было редактировать в программе. Если вы сделаете это, сделайте всем одолжение и включите комментарий, объясняющий, что такое константа:

const double magic_val = 0.8660254037844385965883; // sin(M_PI / 3);
...