2016-01-08 2 views
-6

У меня есть глобальная переменная «count». Все, что я хочу сделать, - это увеличивать его каждый раз при запуске цикла. Есть ли потенциальная проблема с инициализацией статического счета как 0? Как это работает в C?Вы можете назначить начальное значение глобальной статической переменной в C?

static unsigned short count = 0; 
while(1) 
{ 
    count++; 
    // do something 
} 
+1

Да, если инициализатор является постоянным выражением. Например, вы не можете инициализировать вызовом функции. –

ответ

2

Да, вы можете, почему вы думаете, что не можете? Но если значение 0, вы можете пропустить инициализацию, так как переменные static автоматически инициализируются до 0. Кроме того, поскольку @M.Mcommented here обязательным является значение константы, вы не можете присвоить результат, например, malloc().

Не существует потенциальной проблемы, и нет оснований думать, что возникнет проблема. За исключением целочисленного переполнения, в вашем коде, который наверняка произойдет, но он не имеет ничего общего с классом хранения вашей переменной.

Смежные вопросы