2014-04-01 79 views
0

在下面的代碼中爲什麼struct有兩個變量名?爲什麼struct在C/C++中有兩個變量名稱

#include <sys/resource.h> 

int main (int argc, char **argv) 
{ 
    const rlim_t kStackSize = 64L * 1024L * 1024L; 

    struct rlimit rl; //HERE 

    int result = getrlimit(RLIMIT_STACK, &rl); 


    return 0; 
} 
+3

它有一個變量名:'rl'。如果這是C++,則不需要'struct',如果這是C,則可以更改該類型,因此不需要它。 – chris

回答

2

在C,結構與它的標籤一起是出了名的,除非它是typedef版。

在C++中,可以省略struct關鍵字。

+0

啊所以rlimit是一個「類型」的結構? – user997112

+0

@ user997112在C中,'struct rlimit'是一個類型,'rlimit'僅僅是一個結構標籤。 –

1

如果這是C,則struct只是告訴C它位於不同的名稱空間中。

參見:understanding C namespaces

如果這是C+++,則不需要struct

相關問題