2015-06-04 3 views
-7
typedef struct node{ 
    int data; 
    struct node *next; 
}Node; 

будет ли разница, если я использую «узел» вместо «Node»Можем ли мы использовать узел узла typedef struct;

typedef struct node{ 
    int data; 
    struct node *next; 
}node; 
+3

Вы попробовали? Это (не) работало? –

+0

Это просто имя. –

+0

Это действительно. мы можем использовать его. – BLUEPIXY

ответ

0

Нет, это просто название. Однако большинство соглашений о присвоении наименований C диктуют, что структуры typedef капитализируются, поэтому большинство предпочитает Node.

+0

ОК, но почему я использовал соглашение об именовании 'C++' в коде 'C' (# ничего серьезного, просто для удовольствия). :-) –

+0

Ouch .... я исправил это. Благодаря :) –

3

Имена тегов для структур, союзов и перечислений занимают другое пространство имен от других идентификаторов (включая имена typedef), поэтому typedef struct node { ... } node; действителен.

Struct и профсоюзные имена членов занимают еще одно пространство имен, поэтому следующее является законным, если опрометчиво:

typedef struct foo { int foo; } foo; 

Что вы не может сделать что-то вроде

typedef struct foo {...} foo; 
foo foo; 

так как имя typedef и имя переменной занимают одно и то же пространство имен.

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