接着楼上几位说。
根据原先 C98 的标准,结构体定义的时候需要使用 typedef。
但是对于更新的 C99 标准和 C11 及以上的标准,typedef 可以省略或者强制省略。
对于定义 struct 的时候,C98 需要添加 struct,但是同时 C99 标准也去掉了。
举个小例子(可能不全):
typedef struct edge{
int from;
int to;
int dis;
};
struct Edge[101];
//C98
现在的新标准(通用的)会变成:
struct edge{
int from;
int to;
int dis;
};
edge Edge[101];
//C99
同时 C99 的例子中 edge 类型就可以像 int 类型一样赋值、传输、传地址、定义、作为函数类型...
需要的时候还可以重载运算符,重载运算符可以参考这个站的其他内容了。
同时再讲点新的:
对于结构体类型的变量,我们可以限制成员的位数大小。
举个例子:
struct demo{int demoint:1;};
这样就限制了 demoint 成员只占一个 B。