2013-05-31 4 views
-5

Пусть мы имеем кусок кода:Anonymous Struct Указатель

int random_function random_variable         
    (                 
    struct struct_name *    
); 

это будет действительным синтаксисом? Если да, то как ссылаться на указатель позже в программе?

ответ

2

Нет, пример кода недопустим синтаксисом. Это будет попытка компиляции.

Повторная запись в то, что, как вы видите, вы запрашиваете, приведен в следующем примере, вы спрашиваете: «Как ссылка на ссылку (анонимная структура) позже в программе?»

int random_function(int random_variable) { 
    // Supposed Anonymous Struct Pointer, but invalid syntax. 
    struct struct_name *; 
} 

Похоже, вы путаете, что анонимным. В вашем примере намекает, что вы думаете, что у структуры есть имя, а переменная анонимно, что, если могло произойти, сделает ее недоступной.

Правильного пример анонимного Struct Указатель будет

int random_function(int random_variable) { 
    struct /* no structure tag here */ { 
    int a; 
    int b; 
    } *variable_name; 
variable_name = malloc(sizeof(variable_name)); 
variable_name->a = 1; 
variable_name->a = 2; 
return variable_name->a; 
} 

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

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