2014-11-06 7 views
1

У меня есть глобальный массив. Память этого массива будет выделена из сегмента данных. Я смущаюсь, что я должен назвать этим массивом. Это объявление массива или определение массива? Я думаю, что с момента выделения памяти это должно быть определение массива.определение массива против объявления массива

int array[4][5][2]; // declaration or definition? 4*(4+5+2) bytes will be allocated 
int main() 
{ 
    return 0; 
} 

ответ

1

В соответствии со стандартом C (6.7) Declarations

5 Декларация определяет интерпретацию и атрибуты набора идентификаторов. определением идентификатора является декларацией , что идентификатор, который:

- для объекта, вызывает хранения должны быть зарезервированы для этого объекта;

Как вы отметили, память для массива зарезервирована в разделе данных, тогда у вас есть объявление массива, которое в то же время является определением.

0

В этом случае это: объявление + определение.

Если у вас есть в отдельном файле что-то вроде:

extern int array[4][5][2]; 

Тогда вот только объявляя его, так как определение происходит в других «внешний» файл.