1、因为宏定义实质是一种替换,虽然看起来是字符,实际上最终是被替换成其他常熟或者值。
2、宏定义中的标识符都采用大写,这是编程中一种约定俗成的习惯:
1)宏替换不做语法检查,所以在使用的时候要格外小心
2)宏替换通常在文件开头部分,写在函数的花括号外边,作用域为其后的程序,直到用 问好
3)# u n d e f 命令终止宏定义的作用域
4)不要在字符串中使用宏,如果宏名出现在字符串中,那么将按字符串进行处理.
因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。
例如:
#define A 5
void main()
{
int num=A;
}
在编译之前A已经被替换成5了,所以就可以赋值给num。
汉字根据编码方式不同,所占的大小2~4个字节不等,汉字赋值给字符变量,只显示第一个字节,出问号就不奇怪了
用汉字赋值给字符数数组然后在显示的话,一定要考虑编码方式问题,你的终端支持哪种就选择哪种,否则乱码
C里面不支持汉子,你用VC++6.0试试,那个可以显示汉子
#define namehello "wendy"
#include
#include
void main()
{
cout<
strcpy(str,namehello);
cout<