C语言宏指令汇总

    作者:初生不惑更新于: 2020-02-12 15:02:56

    大神带你学编程,欢迎选课

    计算机科学里的宏(Macro),是一种批量批处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 。解释器或编译器在遇到宏时会自动进行这一模式替换。

    宏是一种可由宏的值代替的代码段。 宏由#define指令定义。 有两种类型的宏:

    • 类似对象的宏
    • 类似函数的宏

    类似对象的宏

    类似对象的宏是一种被值替换的标识符。它广泛用于表示数字常数。 例如:

    #define PI 3.14
    
    C

    这里,PI就是代替值3.14的宏名称,对于宏名称可使用与变量命名规则相同的其它名称。

    类似函数的宏

    类似函数的宏看起来像函数调用。例如:

    #define MIN(a,b) ((a)<(b)?(a):(b))
    
    C

    这里,MIN是宏的名称。

    可通过访问#define来查看类似对象和类似函数的宏的完整示例。

    C预定义宏

    ANSI C定义了许多可在C语言程序中使用的预定义的宏。如下列表所示 -

    序号说明
    1 _DATE_ “MMM DD YYYY”格式表示当前日期。
    2 _TIME_ “HH:MM:SS”格式表示当前时间。
    3 _FILE_ 表示当前文件名。
    4 _LINE_ 表示当前行。
    5 _STDC_ 当编译器符合ANSI标准时,它被定义为1

    C语言预定义的宏示例

    为了更好地演示如何使用C语言预定义的宏,我们创建一个源文件:predefined-macros.c 在工程 preprocessor 中,其代码如下所示 -

    #include   
    void main() {
        printf("File :%s\\n", __FILE__);
        printf("Date :%s\\n", __DATE__);
        printf("Time :%s\\n", __TIME__);
        printf("Line :%d\\n", __LINE__);
        //printf("STDC :%d\\n", __STDC__); 不常用
    }
    
    C

    执行上面示例代码,得到以下结果 -

    shell code-toolbar">File :f:\\worksp\\clanguage\\preprocessor\\preprocessor\\predefined-macros.c
    Date :Aug 17 2017
    Time :17:33:25
    Line :6
    对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。

课课家教育

未登录