连接符##

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 fornormandy 的 blog

经常使用_t()宏,它是怎么来的?用va看了一下,原来_t是__t

#define _t(x)       __t(x)

再看看__t

在tchar.h中

#ifdef  _unicode

#define __t(x)      l ## x

#else

#define __t(x)      x

#endif

 

那么,这个##是什么呢?原来它是一个连接符,将##左右两边的表达式连接成一个.比如,在_unicode环境下,

_t(“unicode“) == l“unicode“

 

不过需要注意的是,宏是由编译器在编译阶段识别的,所以不能指望程序运行时起到连接作用.比如:

int a0, a1, a2, a3;

for (int i = 0; i < 4; i++)

{

 a##i = i;

}

这种代码就无法编译了.

本文关键:连接符##
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top