预处理与宏定义__笔记

浪尽此生 提交于 2020-02-26 12:39:25

2017-09-18 10:45:21

预处理
    1.预处理的指令和功能
        以“#”开头的语句
        #include 文件包含

                #include <stdio.h> 在标准库下面找
                #include "stdio.h" 在当前工作路径下查找 自定义头文件的包含形式
                区别:查找的路径不相同

        #define 宏定义
        不带参数的宏和带参数的宏
            #define PI 3.14
            #define MAX(a,b) a>b?a:b
                                                                better-> MAX(a,b) (a)>(b)?(a):(b)
            int result = MAX(3,5); 3>5?3:5;
            

        操作符 ##
            #define VAR(n) v##n
            当使用这种方式应用宏: VAR(1),预处理时,将会得到:v1

                int i;
                for(i = 1;i < 100;i++)
                int VAR(i);

                 //int v1; int v2;int v3;


    2.条件编译(后接常量表达式)
        #if    #else    #endif
        #if    #elif    #else    #endif
        #ifdef    如果定义了
        #ifndef    如果没有定义(在头文件中运用最多) 目的:防止重复定义!!!
            在头文件中进行函数的声明和变量的声明,结构体的声明;
            在C文件中进行变量定义,函数编写;


        #undef 宏名 取消宏定义

    3.预定义的宏名
        __DATE__ 当前源程序的创建日期
        __FILE__ 当前源程序的文件名称
        __LINE__ 当前被编译代码的行号
        __TIME__ 当前源程序的创建时间



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!