zoukankan      html  css  js  c++  java
  • C语言预处理理论-宏定义1

    宏定义1
    宏定义的规则和使用解析
    (1)宏定义的解析规则就是:在预处理阶段由预处理器进行替换,这个替换是原封不动的替换。
    (2)宏定义替换会递归进行,直到替换出来的值本身不再是一个宏为止。
    #define M 10
    #define N M
    (3)一个正确的宏定义式子本身分为3部分,第一部分是#define,第二部分是宏名,剩下的所有为第三部分。
    (4)宏可以带参数,称为带参宏。带参宏的使用和带参函数非常像,但是使用上有一些差异。在定义带参宏时,每一个参数
    在宏体中引用时都必须加括号,最后整体再加括号,括号缺一不可。
    #define X(a,b) ((a)*(b))
    2、宏定义实例1:MAX宏,求2个数中较大的一个
    #define MAX(a,b) ((a)>(b) ? (a) : (b))
    关键:
     第一点:要想到使用三目运算符来完成。
     第二点:注意括号的使用
    3、宏定义实例2:SEC_PER_YEAR,用宏定义表示一年中有多少秒
    #define SEC_PER_YEAR   (31536000)        //可行,但是不推荐
    #define SEC_PER_YEAR   (365*24*60*60)    //错误,默认int类型,超过类型存储范围了,int本身是有符号的
    #define SEC_PER_YEAR   (365*24*60*60UL)  //正确写法,将有符号变成无符号,范围扩大一倍

  • 相关阅读:
    C# 读取sqlite文件
    MongoDB聚合管道
    提取Word里的文本内容 C#
    Two Sum【LeetCode】
    Could not create SSL/TLS secure channel.
    处理Task引发的异常
    https请求抛出异常
    hexo+github page +markdown问题汇总
    通过自定义比较器排序(C#版)
    GridView固定行宽,自动换行,鼠标放在Table的Tr上变色
  • 原文地址:https://www.cnblogs.com/jiangtongxue/p/11736745.html
Copyright © 2011-2022 走看看