在C语言中:
enum是一种自定义类型
enum的值是可以根据需要自定义的整型值
第一个定义enum值默认为0
默认情况下的enum值是在前一个定义值的基础上加1
enum类型的变量只能取定义时的离散值
enum的特殊意义:
enum中定义的值是C语言中真正意义上的常量
在工程中enum多用于定义整型常量
/* 测试程序 */ #include <stdio.h> enum // 无名枚举, 用于定义常量 { ARRAY_SIZE = 10 // 定义数组大小 }; int main(void) { int i = 0; int array[ARRAY_SIZE] = {0}; for(i = 0; i < ARRAY_SIZE; i++) { array[i] = i + 1; printf("array[%d] = %d\n", i, array[i]); } return 0; }sizeof是编译器的内置关键字
sizeof用于计算类型或变量所占的内存大小
sizeof的值在编译期就已经确定
sizeof用于类型sizeof用于变量sizeof(type)sizeof(var) 或 sizeof var在编译过程中所有的sizeof将被具体的数字所替换
程序的执行过程与sizeof没有任何关系
/*测试代码*/ #include <stdio.h> int main() { int var = 0; int size = sizeof(var++); printf("var = %d, size = %d\n", var, size); return 0; }运行结果
var = 0, size = 4由此得知:var++ 未被执行, sizeof(var++)在编译期就被具体的数值 4 所代替
typedef用于给一个已经存在的数据类型重命名
typedef本质上不能产生新的类型
typedef重命名的类型:
可以在typedef语句之后定义不能被unsigned和signed修饰用法:
typedef type new_name;