子弹 の VISIONS

NEVER back down ~~

C++博客 首页 新随笔 联系 聚合 管理
  112 Posts :: 34 Stories :: 99 Comments :: 0 Trackbacks

想想以下代码的执行结果是什么?

--------------------------------------
#define VERSION    1234
#define MK_STR(x)  (#x)

void
print_version() {
    printf( MK_STR( VERSION ));
}
--------------------------------------
"1234" 吗?——错,输出是:"VERSION"!!

ANSWER
--------------------------------------
#define NUMBER B85800    // this can be defined in the command line

#define VAL(str) #str
#define TOSTRING(str) VAL(str)

unsigned char
part1[10] = TOSTRING (NUMBER); // generates "B85800"
unsigned char part2[10] = VAL(NUMBER);           // generates "NUMBER"
--------------------------------------

posted on 2006-09-01 13:30 子弹のVISIONS 阅读(251) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理