Прежде всего, определение переменной в файле заголовка не является хорошей практикой , поскольку каждый файл, который включает этот заголовок , будет иметь свою собственную версию переменной (если вы не используете некоторые охраняющий макрос , чтобы предвидеть это).
Вот почему вы испытываете неинициализированную переменную , поскольку она отличается от переменной, которую вы инициализировали ранее.
Вместо этого вам лучше определить переменную double Max;
в файле C ++, а затем добавить extern double Max;
в соответствующий заголовочный файл. Таким образом, будет только одно определение переменной, даже если заголовочный файл включен более чем в один файл.
Кстати, вы должны использовать %lf
для double
, а не %d
:
sprintf( MaxBuf, "%lf", Max); // Max is of type double