宏定義的疑問
本帖最后由 kikiatw 于 2014-6-15 11:45 编辑#ifdefUNICODE
......
#define__TEXT(quote)L##quote// 在字符串前边加上 L 使用宽字符,每个字符占两个字节
#else
......
#define__TEXT(quote)quote // 直接解释为字符串
#endif
#defineTEXT(quote)__TEXT(quote)
上面这个问题我更矇了, 一般我们用宏定义
#define int size
这意思是说我们可以用 size 去替代 int 宣告一个整形变数
所以我们在代码内打上 size abc 编译器会替换成 int abc
那上面我们用 TEXT(quote) 是同等於 __TEXT(quote), 在unicode 环境也同等於 L##quote
但是这种是逆向的关係吧, 不代表 TEXT(quote)会替代成 L##quote,
而是在代码段我们打上 L##quote 会被替代成 TEXT(quote)吧
可是怎麼跟小甲鱼老师说的恰恰相反呢? 请大神帮忙开释, 感谢!!
话说 能用简体字么?? 好多字不认识啊 ~~~~(>_<)~~~~ 大神出現了,可惜大神看不懂正體中文......
問題一我懂了, 小甲魚老師在後面有做解釋了, 可是問題二還是看不懂, 求大神解釋 牡丹花下死做鬼 发表于 2014-6-15 10:41 static/image/common/back.gif
话说 能用简体字么?? 好多字不认识啊 ~~~~(>_
我改成簡體中文了請大神幫忙開釋! #define你可以把它想象成就是纯文本的替换,他和typedef是有区别的。TEXT(quote) 会被替换成__TEXT(quote),不要去想他的什么功能。就是简单地字符替换。这就好比你的爸爸叫你儿子,你的老婆叫你老公,这两个称谓都是只一个人。如果是UNICODE编码方式就把__TEXT(quote) 换成 L##quote,##这个应该是编译器的某项功能吧,反正就是在前面加上一个L,编程宽字符了。总之这些就是简单地字符替换而已{:1_1:}
本帖最后由 kikiatw 于 2014-6-15 14:43 编辑
抱歉 我懂了, 我把#define 與 #typedef搞混了 我應該重新複習該章節!!
kikiatw 发表于 2014-6-15 14:32 static/image/common/back.gif
抱歉 我懂了, 我把#define 與 #typedef搞混了 我應該重新複習該章節!!
#typedef ?????
你确定搞懂了 我真的搞懂了, 我知道多個#
不懂,进来学习一下。。。。。 {:7_146:} 看看
页:
[1]