Учитывая следующий фрагмент кода:Что такое значение по умолчанию для NSUInteger в локальной области?
- (void)doSomething
{
NSUInteger count;
}
Что считать? Гарантируется ли оно 0?
Учитывая следующий фрагмент кода:Что такое значение по умолчанию для NSUInteger в локальной области?
- (void)doSomething
{
NSUInteger count;
}
Что считать? Гарантируется ли оно 0?
Нет, он не гарантированно равен нулю, так как это локальная автоматическая переменная. Без инициализации его значение неопределенно. Если вы хотите, чтобы это было равно нулю, либо инициализировать его:
NSUInteger count = 0;
или определить его как static
:
static NSUInteger count;
поскольку переменные со статической продолжительностью хранения неявно intialized к нулю, но учтите, что это имеет сторону эффекты (а именно, значение сохраняется между вызовами функций).
Спасибо всем. Я на самом деле полагал, что это будет память мусора, но явным образом спросил, гарантировано ли оно, что он равен 0. Потому что я решил, что это будет более полезно для следующего человека, который нашел этот вопрос. – funroll