2014-12-14 3 views
0

Что определяет 100 в следующем определении структуры в C?Создание нескольких структур в C?

struct node_type 
{ float data; 
    int next; 
} node[100]; 

Я написал следующий код, чтобы определить, было ли это forcing a specific struct size, но это не так (оба вернулись размер 8 байт). Определяет ли он 100 экземпляров структуры узла? Если да, то где они хранятся/как их можно получить? Благодаря!

#include <stdio.h> 

struct node_type{ 
    float data; 
    int next; 
}node[100]; 

int main(){ 

    struct node_type node = {21.9, 2}; 

    printf("%ld\n", sizeof(node)); // 8 
    printf("%ld\n", sizeof(struct node_type)); // 8 

} 
+0

Имя является дубликатом. Положим другое имя. – BLUEPIXY

+1

Он определяет массив из 100 'struct node_type' с именем 'node' в глобальной области. Вы можете просто получить к нему доступ, как и любой другой массив, пока отображается «узел». – foobar

ответ

3

Это просто означает, что вы объявляете массив из 100 элементов, где каждый элемент имеет тип struct node_type.

Обратите внимание, что локальный идентификатор node теней внешний, поэтому он больше не является массивом в области блока main. В C нет способа получить доступ к массиву node, если не обнаружен } пунктуатор, представляющий собой конец этой области блока.

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