`
cloudtech
  • 浏览: 4619534 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

宏定义的一些特殊用法

 
阅读更多

1、有参宏定义中#的用法  

#defineSTR(str)#str  

#用于把宏定义中的参数两端加上字符串的""  

比如,这里STR(my#name)会被替换成"my#name"  一般由任意字符都可以做形参,但以下情况会出错:  STR())这样,编译器不会把“)”当成STR()的参数。  STR(,)同上,编译器不会把“,”当成STR的参数。  STR(A,B)如果实参过多,则编译器会把多余的参数舍去。(VC++2008为例)  STR((A,B))会被解读为实参为:(A,B),而不是被解读为两个实参,第一个是(A第二个是B)。  

2、有参宏定义中##的用法  #defineWIDE(str)L##str  则会将形参str的前面加上L  比如:WIDE("abc")就会被替换成L"abc"  如果有#defineFUN(a,b)vo##a##b()  那么FUN(idma,in)会被替换成voidmain()


转载地址:http://hi.baidu.com/wywdahai/item/1b4977125524e80ee65c36e7

分享到:
评论

相关推荐

    宏定义#define用法总结

    C语言中宏定义#define用法总结 1.简单的宏定义 2.带参数的宏 3.宏的特殊单行定义

    Linux c中define的用法小结

    define的用法只是一种纯粹的替换功能,宏定义的替换是预处理器处理的替换。  一:简单的宏定义用法  格式:#define 标识符 替换内容  替换的内容可以是数字,字符,字符串,特殊字符和空格,后面是什么内容就会...

    汇编教程 非常详细 说明的非常清楚 学汇编很好的教程

     2 取消宏定义伪指令  3 中止宏扩展伪指令  9.4 重复汇编伪指令  1 伪指令REPT  2 伪指令IRP  3 伪指令IRPC  9.5 条件汇编伪指令  1 条件汇编伪指令的功能  2 条件汇编伪指令的举例  9.6 宏的扩充 ...

    C语言经典例题100道

    将一个数组逆序输出 41.static定义静态变量用法 42.使用auto定义变量用法 43.使用static的另一用法 44.使用external的用法 45.使用register定义变量方法 46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#...

    freemarker总结

    FreeMarker还提供了一些内建函数来转换输出,可以在任何变量后紧跟?,?后紧跟内建函数,就可以通过内建函数来轮换输出变量.下面是常用的内建的字符串函数: html:对字符串进行HTML编码 cap_first:使字符串第一个字母...

    names:Emacs-Lisp 的命名空间实现

    支持 emacs-lisp 中可用的任何宏、函数或特殊形式,甚至是您或第三方定义的。 强壮的 毫无意外,经过充分测试,并有明确规定的限制。 可调试 支持edebug和eval-defun defun ,以及任何其他包开发工具。 请参阅 ...

    c/c++ 学习总结 初学者必备

    而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。  转义字符 意义 ASCII码值(十进制)  \a 响铃(BEL) 007  \b...

    C++MFC教程

    在MFC中对消息的处理利用了消息映射的方法,该方法的基础是宏定义实现,通过宏定义将消息分派到不同的成员函数进行处理。下面简单讲述一下这种方法的实现方法: 代码如下 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd...

    Spring中文帮助文档

    11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6. 用Java对象来表达JDBC操作 11.6.1. SqlQuery类 11.6.2. MappingSqlQuery...

    Spring API

    3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. ...

    spring chm文档

    17.7. 在选择这些技术时的一些考虑 18. Enterprise Java Bean(EJB)集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.3. 使用Spring提供的...

    《Excel应用大全》示例文件 光盘文件

    • INDEX函数和SUMIF函数特殊情况下的易失性 • Excel公式结果的检验和验证 • 创建Excel动态名称来实现采购数据的动态引用 • 成绩检索表-Excel名称代替引用 • Excel图表中使用名称 • 相对引用和混合引用定义...

    freemarker语法完整版

    假设mylib.ftl 里定义了宏copyright 那么我们在其他模板页面里可以这样使用 Freemarker代码 <#import "/libs/mylib.ftl" as my> <@my.copyright date="1999-2002"/> 在freemarker里被称作namespace -->...

    Access+2000中文版高级编程

    4.2.3 集合的高级用法 66 4.3 访问Access对象模型 66 4.3.1 使用Application对象 67 4.3.2 使用References集合 80 4.3.3 使用Forms和Reports集合 80 4.4 通过编程实现同一窗体的多个副本 83 4.4.1 支持...

    Access 2000中文版高级编程(part1)

    4.2.3 集合的高级用法 66 4.3 访问Access对象模型 66 4.3.1 使用Application对象 67 4.3.2 使用References集合 80 4.3.3 使用Forms和Reports集合 80 4.4 通过编程实现同一窗体的多个副本 83 4.4.1 支持多窗体...

    editplus 代码编辑器html c++ jsp css

    EditPlus的键盘记录有些类似于 UltraEdit 的宏操作,不过功能相对单一,录制的文件可编辑性较差。 由于基本无法编辑录制的文件,所以录制的时候为了避免录制失败,推荐纯粹使用键盘操作,以下是比较关键的几个键盘...

    arm指令集-中文 (ARM微控制器基础)

    前言...............................................................................................................................................................i 目录..................................

    学习ARM汇编的经典参考资料

    对ARM的各种汇编指令进行了深入全面的讲解,并给出了各种示例和详细注解,并且还对一些值得注意的点或是容易犯错误的地方进行了总结。 目录 前言.................................................................

    ARM指令集 肯定可以下载

    前言...............................................................................................................................................................i 目录..................................

    EditPlus 2整理信箱的工具

    这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下 解决: 在替换对话框中,启用“正则表达式”复选框 在查找内容里面输入...

Global site tag (gtag.js) - Google Analytics