预处理、const、static与sizeof
1.在#define宏中需要把参数小心地用括号括起来。因为宏只是简单的文本替换,如果不注意,很容易引起歧义。
#define SQR(x) (x*x)
int a,b=3;
a=SQR(b+2); //a=b+2*b+2
输出a=11。
2.宏参数
#define STR(s) #s
#define CONS(a,b) (int)(a##e##b)
#把宏参数变为一个字符串,用##把两个宏参数贴在一起。
3.用宏定义得到一个字的高位和低位字节
#define WORD_LO(xxx) ((byte) ((word)(xxx)&255))
#define W
1.在#define宏中需要把参数小心地用括号括起来。因为宏只是简单的文本替换,如果不注意,很容易引起歧义。
#define SQR(x) (x*x)
int a,b=3;
a=SQR(b+2); //a=b+2*b+2
输出a=11。
2.宏参数
#define STR(s) #s
#define CONS(a,b) (int)(a##e##b)
#把宏参数变为一个字符串,用##把两个宏参数贴在一起。
3.用宏定义得到一个字的高位和低位字节
#define WORD_LO(xxx) ((byte) ((word)(xxx)&255))
#define W