宏定义的用法

有五种用法,含有参数和不含参数,行尾都不用加分号

  1. #define   <标识符>  [<替换列表>]

    //类似于全局变量了
    //如果其他文件没有包含定义宏的文件,则在宏定义的位置结束,如果有包含,则到包含的文件结束
    #define LARGEST_NUM 1000
    
  2. #define  <标识符>  ([参数列表]) ([替换列表])

    //注意,替换列表里面必须加上括号,否则可能会导致歧义
    //当然,替换列表也可以添加中括号,就看自己的用法了{}
    #define add (a,b) (a+b)
    
  3. #ifdef   #else  #ifndef  #endif 组合起来可以进行条件编译

    //#ifdef以及#ifndef和#endif 是成对出现的
    #ifdef debug
    ...
    #else
    ...
    #endif
    
  4. 文件包含,在多重引用的情况下,很容易搞混一个h文件是否已经包含。如果不确定,可以使用如下语句进行包含

    #ifndef _HEADFILE_
    #define _HEADFILE_
    ...
    ...
    #endif
    
  5. 更多的替换 ##,#@,#

    ##

    //作用是连接x和y
    #define Conn(x,y) x##y
    ...
    int a=Conn(123,456);
    //那么a=123456
    string s=Conn(123,456);
    //那么s="123456"
    

    #@

    //作用是把x转换为char并返回
    #define ToChar (x) #@x 
    ...
    //x不能超过4个字符,否则就会报超长错误
    char a = ToChar(1)
    

    #

    //作用是把x转换为string,并返回,
    #define ToString (x) #x
    ...
    //返回的结果是"123456"
    string s= ToString(123456)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值