enum的分析
在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用于变量 |
---|---|
sizeof(type) | sizeof(var) 或 sizeof var |
注意:sizeof是C语言内置关键字而不是函数
在编译过程中所有的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重命名的类型:
- 可以在typedef语句之后定义
- 不能被unsigned和signed修饰
用法:
typedef type new_name;