2017-02-05 64 views
-3

來自C++背景。我需要爲我的一門課程編寫C語言,這是我從未接觸過的。這兩個聲明有什麼區別?爲什麼包含struct關鍵字?有不同的含義嗎?他們在C++ vs C中有不同的含義嗎?有什麼區別:使用關鍵字在同一類型的結構中創建結構指針struct

struct A { 
    int dataA; 
    A* nextA; 
}; 

struct B { 
    int dataB; 
    struct B* nextB; 
}; 

下面的評論說第一個在C中是無效的。但是,我用gcc編譯得很好。

enter image description here

編輯:我是編譯.cpp文件用gcc。我是這樣一個noob哈哈。

解決方案:第二個是C所必需的,其中第一個僅在C++中有效。

+2

第一個在C中無效 –

+0

嗯..它用gcc編譯得很好。 –

+0

嗯...... nops http://ideone.com/A24jsZ :) –

回答

2
struct B { 
    int dataB; 
    B* nextB; 
}; 

相同

struct B { 
    int dataB; 
    struct B* nextB; 
}; 
用C++

但不是在C.當使用C,你必須使用第二種形式。第一種形式不合法C.

相關問題