宏定义define.docVIP

  • 1
  • 0
  • 约4.46千字
  • 约 9页
  • 2018-06-11 发布于河南
  • 举报
/rusty/archive/2011/03/27/1996806.html #include #define f a,b a##b #define g a #a #define h a g a int main printf %d\n, f 1,2 ;//数12 printf %s\n, h f 1,2 ;//字符串12” printf %s\n, g f 1,2 ;//“f 1,2 ” return 0; C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作 ##被称为连接符,用来将两连接为一个。 #、##运算符之外的,在宏替换之前对实参本身进行充分的展开。 12和f 1,2 ,为什么会这样呢?因为宏定义的展开不象函数执行那样由里到外。 h f 1,2 ,由于h a 是非#或##的普通宏,需要先宏展开其参数a,即展开f 1,2 为12,则h a 宏替换为h 12 ,进而宏替换为g 12 , 进而宏替换为12。#将右边的参数做整体的字符串替换,即便是另一个宏,也不展开,所以,g f 1,2 - f 1,2 。 /fly1988happy/archive/2012/04/10/座机电话号码.html 宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。 1.不带参数的宏定义: #define 标识符 字符串 在

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档