C 语言中的预处理介绍

预处理指令
    #include <>//在系统指定的位置去找
    #include ""//在当前目录去找,若找不到,再去系统目录去找
   
     预处理器:  见到// 或者 /* */ 就去掉
     编译器  见不到以#号开头的东西或者见到也会去掉
   
    #define
        简单的宏(直接替换)
        宏函数(根据参数来替换):变量尽量都要加括号,函数体也尽量要加括号,视具体情况,有些需要加上{}。
       
            优点:
                程序可能会稍微快一点
                宏更通用
                    宏函数中的参数不检查类型
            缺点:
                编译后的代码通常会变大
                宏参数没有类型检查
                无法用一个指针指向宏
                宏可能会不止一次的计算它的参数
                    n = MAX(i++,j)       
           
     c++不提倡用宏      
           
    # :只能出现在宏函数中,其作用是将参数字符串化
        #deifne PRINT(x)  (printf(#x"=%d\n", x))
       
    ## :将两个记号粘合在一起,成为一个记号,其中一个记号一般为宏参数
        #definr ID(n)   i##n          
           
    预定义宏:       
     
      __LINE__: 替换源程序中的所在行,若在第五行,则替换为5    
      __FILE__: 编译的源文件名
      __DATE__: 编译日期
      __TIME__: 编译时间
      __STDC__: 编译器是否支持标准C处理
           
    条件编译:
        #if
        #ifdef :看看有没有后面的宏
        #ifndef :如果没有后面这个宏,则条件成立
        #elif :
        #else :
        #endif :结束
        #undef:取消一个宏定义
       
    预处理:
    宏定义:   #define  不会对""里面的东西进行替换
        简单的宏:主要用来定义那些“明示常量”
            #define 标识符   替换列表
            eg: #define PI 3.14
        宏函数(带参数的宏,函数式宏)
            #define 标识符(x1,x2...)替换列表
            注意:标识符和括号‘(’之间不能有空格
       
       
       好处:
        程序会更易读
        程序会更容易修改
        可以避免前后不一致或键盘输入错误
        可以对c语法作小的修改
        对类型重命名
       
    文件包含: #include
    条件编译:
        #if
        #ifdef
        #ifndef
        #elif
        #endif
        #undef
      
    指令都以#号开始
        #不要求必须是行首,只要前面有空白符就行。
    指令总是在第一个换行符处结束,除非明确的指出要延续(用'\'来延续)
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值