[an error occurred while processing this directive]
|
Note: In standard C/C++, global and static variables that are not explicitly initialized are set to 0 before program execution.
Замечание: В стандартном С/С++ глобальные и статические переменные, которые не имеют явной инициализации (т.е. у них нет явного инициализатора типа x = N), обнуляются перед выполнением программы.
The C55x C/C++ compiler does not perform any preinitialization of
uninitialized variables.
С55х С/С++ компилятор не производит никакой преинициализации неинициализированных переменных.
Explicitly initialize any variable that must have an initial value of 0.
Явно инициализируйте любую переменную, которая должна иметь начальное значение равное 0.
Т.е. если по Стандарту я могу писать:
int x;
double y = 1.23;
int main() { ... }
То в случае композерских компиляторов я должен писать:
int x = 0;
double y = 1.23;
int main() { ... }
Что не есть гуд! Поэтому я просто, видимо, сделаю изменения в стартапе, где вся секция .bss будет обнуляться перед инициализацией. Это должно дать нужный эффект, хотя это не совсем корректно и возможны тоже грабли. К сожалению.
E-mail: info@telesys.ru