Не используйте const
переменные для этого! В языке C квалифицированная переменная const
это , а не константа в смысле константного выражения, поэтому ее нельзя использовать при инициализации статической / глобальной переменной. Это имеет серьезные практические последствия; например, следующее не будет работать:
static const double powers_of_pi[] = { 1, PI, PI*PI, PI*PI*PI, PI*PI*PI*PI, };
Правильное решение - #define
. Вероятно, лучше использовать суффикс l
, чтобы они имели тип long double
и включали достаточно много десятичных разрядов, чтобы значения были правильными для типов long double
до 128-битных. Затем вы можете использовать их там, где ожидается любой тип с плавающей точкой; C автоматически преобразует их в более низкую точность по мере необходимости.