問題見注釋處#include<iostream>using namespace std;struct animal{ //定義一個animal的結構體int weight; // animal的成員變量“體重”};void main(){animal mydog; //我的問題是,如果這里行換成 struct animal mydog;//也就是多加了一個 struct, 發(fā)現(xiàn)也能正常運行。//那么,加不加 struct 無所謂是嗎? 不會對我的程序有影響吧?mydog.weight = 45;cout<<mydog.weight<<endl;}
2 回答

慕田峪9158850
TA貢獻1794條經(jīng)驗 獲得超7個贊
最早的C編譯器,是要求在結構體定義前加入struct關鍵字的,許多老的代碼都是這么寫的,但是到了C++中,以及后期的部分C編譯器中,已經(jīng)不再要求在定義結構體變量的時候加入struct了,所以你不加也可以。加了也無所謂。
簡而言之,你如果寫C++代碼,加不加無所謂,如果寫C代碼,考慮代碼兼容性可以加上struct。

揚帆大魚
TA貢獻1799條經(jīng)驗 獲得超9個贊
加不加跟編譯器有關,如果不加也可以的話,那加不加就無所謂了。
如果你看過Linux內(nèi)核或一些老的項目,會發(fā)現(xiàn)很多地方用typedef實現(xiàn)了這個效果(當然他們可能還有移植方面的考慮)。舉個例子:
typedef struct my_struct{
int member_item;
}my_struct_t;
以后直接用my_struct_t就行了(本質(zhì)上還是寫了struct這個關鍵字的)。
【反正我是習慣用typedef的,這樣既簡潔又不用考慮編譯器是不是可以不加,而且看起來還很酷】
- 2 回答
- 0 關注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消