2013-05-31 68 views
-5

假設我們有一段代碼:匿名結構指針

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 *; 
} 

您似乎在混合什麼是匿名。你的例子暗示你認爲結構有一個名字和變量是匿名,如果可能發生就會使它無法訪問。

匿名結構指針的正確的例子是

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成爲指向匿名結構的指針。該變量以通常的方式訪問。