enum
是一种自定义类型,真真正正的常量
enum默认常量在前一个值的基础上依次加1
enum类型的变量只能取定义时的离散值,只能是int型
enum类型变量只能取值为花括号内的任何一个值
enum color
{
GREEN,
RED = 2,
BLUE
};
enum变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,它们的值从0开始依次递增1。所以GREEN=0,BLUE=3。
枚举类型和#define区别
#define宏常量只是在预编译阶段简单的进行值替换,枚举常量是在编译的时候确定其值,是真真意义上的常量
#define宏常量无法被调试,枚举常量可以
#define宏常量无类型信息,枚举常量是一种特定类型的常量
typedef
用于给一个已经存在的数据类型重命名
并没有产生新的类型
typedef重定义的类型不能进行unsigned和signed扩展
typedef不能和static等存储类型指示符同时使用,因为每个变量只能有一种存储类型,所以代码:typedef static int i;是非法的。
typedef和#define区别
typedef是给已有类型取别名
#define为简单的字符串替换,无别名概念
typedef char* PCHAR;
PCHAR p1,p2; -->char* p1;char* p2;
#define PCHAR char*
PCHAR p1,p2; -->char* p1,p2; -->char* p1;char p2;
是一种自定义类型,真真正正的常量
enum默认常量在前一个值的基础上依次加1
enum类型的变量只能取定义时的离散值,只能是int型
enum类型变量只能取值为花括号内的任何一个值
enum color
{
GREEN,
RED = 2,
BLUE
};
enum变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,它们的值从0开始依次递增1。所以GREEN=0,BLUE=3。
枚举类型和#define区别
#define宏常量只是在预编译阶段简单的进行值替换,枚举常量是在编译的时候确定其值,是真真意义上的常量
#define宏常量无法被调试,枚举常量可以
#define宏常量无类型信息,枚举常量是一种特定类型的常量
typedef
用于给一个已经存在的数据类型重命名
并没有产生新的类型
typedef重定义的类型不能进行unsigned和signed扩展
typedef不能和static等存储类型指示符同时使用,因为每个变量只能有一种存储类型,所以代码:typedef static int i;是非法的。
typedef和#define区别
typedef是给已有类型取别名
#define为简单的字符串替换,无别名概念
typedef char* PCHAR;
PCHAR p1,p2; -->char* p1;char* p2;
#define PCHAR char*
PCHAR p1,p2; -->char* p1,p2; -->char* p1;char p2;