问题见注释处#include<iostream>using namespace std;struct animal{ //定义一个animal的结构体int weight; // animal的成员变量“体重”};void main(){animal mydog; //我的问题是,如果这里行换成 struct animal mydog;//也就是多加了一个 struct, 发现也能正常运行。//那么,加不加 struct 无所谓是吗? 不会对我的程序有影响吧?mydog.weight = 45;cout<<mydog.weight<<endl;}
2 回答

慕田峪9158850
TA贡献1794条经验 获得超8个赞
最早的C编译器,是要求在结构体定义前加入struct关键字的,许多老的代码都是这么写的,但是到了C++中,以及后期的部分C编译器中,已经不再要求在定义结构体变量的时候加入struct了,所以你不加也可以。加了也无所谓。
简而言之,你如果写C++代码,加不加无所谓,如果写C代码,考虑代码兼容性可以加上struct。

扬帆大鱼
TA贡献1799条经验 获得超9个赞
加不加跟编译器有关,如果不加也可以的话,那加不加就无所谓了。
如果你看过Linux内核或一些老的项目,会发现很多地方用typedef实现了这个效果(当然他们可能还有移植方面的考虑)。举个例子:
typedef struct my_struct{
int member_item;
}my_struct_t;
以后直接用my_struct_t就行了(本质上还是写了struct这个关键字的)。
【反正我是习惯用typedef的,这样既简洁又不用考虑编译器是不是可以不加,而且看起来还很酷】
- 2 回答
- 0 关注
- 156 浏览
添加回答
举报
0/150
提交
取消