• 宏定义


    在Linux kernel的代码中,宏定义使用的频率非常的高,宏定义有很多好处,提高程序的可读性,可扩展性,方便修改代码.

    宏定义名通常大写,大致分为

    一,普通常量

    #define SIZE 1

    这个是简单的把难记的常量取一个好记又表示作用的名字

    二,表示字符串

    #define STR(x)  #x

    这个宏替换的时候会把STR里面的内容转化为字符串.如STR(gcc$C)="gcc$C";

    三,类似数组

    #define ABC(x) find##x    //可以变成类似与数组的变量

    ,定义函数或者函数指针

    定义简单的函数:#define MAX(a,b) ((a)>(b)?(a):(b))

    定义函数指针:

    #define SHOW(str)  show(str)

    void show(int str){
    printf("%d ",str);
    }

    ----------------------------------------------------------------------------

    系统预定义的宏
    __FUNCTION__       //表示当前的使用该宏的函数
    __LINE__         //表示当前该宏出现的行号
    __FILE__         //表示当前宏出现的文件名


    为了调试方便有些调试信息需要按需求打开和关闭,使用
    #ifdef A
    .....
    #dendif 来进行控制

    当已经预定义了名为a的宏则调试打开,否则不进行编译这一段代码,可以用gcc -DA1 来进行添加 -D直接加宏名和值

  • 相关阅读:
    Nbear讲解 之核心类CodeGenerator
    计算字符串显示的像素
    C# 加密算法[汇总]
    索引器的本质
    Excel[.xls|.xlsx|.csv] 导入 导出
    Spring.Net Ioc 实例
    反射中 BindingFlags标识
    C# 图片操作 常用方法 总结
    iTextSharp 生成pdf Form 实例
    玩转 Route
  • 原文地址:https://www.cnblogs.com/CHYI1/p/5394383.html
Copyright © 2020-2023  润新知