积极答复者
这样为什么不能替换

问题
答案
-
#define ddd3 "c:\\db3.mdb"
const char * s = "DBQ=" ddd3 ";";或者
#define ddd3 c:\\db3.mdb
#define str(s) #s
const char * s = "DBQ=" str(ddd3) ";";- 已建议为答案 HuntFox.Com 2011年2月22日 13:04
- 已标记为答案 lucy-liuModerator 2011年2月25日 7:48
全部回复
-
#define ddd3 "c:\\db3.mdb"
const char * s = "DBQ=" ddd3 ";";或者
#define ddd3 c:\\db3.mdb
#define str(s) #s
const char * s = "DBQ=" str(ddd3) ";";- 已建议为答案 HuntFox.Com 2011年2月22日 13:04
- 已标记为答案 lucy-liuModerator 2011年2月25日 7:48
-
Hi Honny,
宏定义又称为宏代换、宏替换,简称“宏”。
格式:
#define 标识符 字符串
其中的标识符就是所谓的符号常量,也称为“宏名”。
预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。
掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。
即在对相关命令或语句的含义和功能作具体分析之前就要换:
例:
#define PI 3.1415926
把程序中出现的PI全部换成3.1415926
如果定义一个字符串
#define str “abc”
注意:如果定义字符串要加引号,这样str代替的就是字符串abc而不是“abc”。
如果您的问题解决了,请把有用的回答标记为答案。
谢谢,
Lucy
Lucy Liu [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.