Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中的typedef差异?_C_Typedef - Fatal编程技术网

C中的typedef差异?

C中的typedef差异?,c,typedef,C,Typedef,在C语言中,以下各项之间有什么区别: typedef enum month_t { jan, feb, march }month; 及 在发布此问题之前,我阅读了以下内容: 但是不太了解…第一个还引入了枚举标记,这意味着枚举可以像这样使用: enum month_t first = jan; /* or */ month second = feb; 第二个不可用,因此枚举仅适用于typedef:ed nameday 当然,枚举本身是不同的,但这是显而易见的。第一个还引入了枚举标记,这意味着枚

在C语言中,以下各项之间有什么区别:

typedef enum month_t
{
jan,
feb,
march
}month;

在发布此问题之前,我阅读了以下内容:


但是不太了解…

第一个还引入了枚举标记,这意味着枚举可以像这样使用:

enum month_t first = jan;
/* or */
month second = feb;
第二个不可用,因此枚举仅适用于
typedef
:ed name
day


当然,枚举本身是不同的,但这是显而易见的。

第一个还引入了枚举标记,这意味着枚举可以像这样使用:

enum month_t first = jan;
/* or */
month second = feb;
第二个不可用,因此枚举仅适用于
typedef
:ed name
day


当然,枚举本身也是不同的,但这是很明显的。

一个定义月,另一个定义天。在第一种情况下,您可以省略
月,然后这两种方法是相同的。
month\u t
只是C中可以使用的另一个类型标记,因此可以将月份声明为
enum month\u t my\u month或仅
月我的月。对于day,您只能执行
day my_day它当前的定义方式。@KerrekSB:这在C语言中实际上并没有区别;它们之间存在同构关系。对于C语言之外的用户来说,这只是一个区别。一个定义月份,另一个定义天数。在第一种情况下,您可以省略
month\u t
,然后这两种方法将是相同的。
month\u t
只是C中可以使用的另一个类型标记,因此可以将月份声明为
enum month\u t my\u month或仅
月我的月。对于day,您只能执行
day my_day它当前的定义方式。@KerrekSB:这在C语言中实际上并没有区别;它们之间存在同构关系。对于C语言以外的用户来说,这只是一个区别。换句话说,第一个声明了一个名为'month_t'的枚举,并定义了一个名为'month'的别名。第二个声明一个匿名枚举并键入一个名为“day”的别名。Yes(向上投票)。换句话说,第一个声明了一个名为'month_t'的枚举,并定义了一个名为'month'的别名。第二个声明一个匿名枚举,并键入一个名为“day”的别名。