C语言预处理器(十五)

来源:互联网 发布:oracle自带表数据脚本 编辑:程序博客网 时间:2024/05/22 10:39


#include <stdio.h>#include "MyFile.h"/** #define **///1、反斜线将定义延续到下一行  "\"#define A "My First define is n\ot so ha\rd,And wh\o they'er\n" //My First define is not so hard,And who they'er//2、const 定义全局常量const int b = 20;//3、static 引用 define 作为数组长度#define Num 50static int d[Num];const int f = 2*Num;//错误static int c[b];  //教程说是无效const int e = 2*b; //教程说是无效//4、宏重定义 macro redefined#define Num2 2 * 3#define Num2 2  *  4#define Num2 2*3        //以最后一次定义为准//5、带参数的 define#define Num3(X)   2*X//6、##运算符 把变量名粘合#define Num4(n) x##n//7、有返回值的宏#define MAX(x,y) (x>y?x:y)#define MIN(x,y) (x<y?x:y)/** #undef **/#define DE 10#undef DE    //取消宏定义/** 条件编译 #ifdef  #ifndef **///1、#ifdef  如果定义了//#define MAVIX#ifdef MAVIX#define HOST "https://www.csdn.com"#else#define HOST "https://www.baidu.com"#endif//2、#ifndef  如果没有定义#ifndef MAVIX#define HOST2 "https://www.csdn.com"#else#define HOST2 "https://www.baidu.com"#endif/** #if #endif **/#define IS_HOST 2#if IS_HOST==1    //如果条件符合#define HOST3 "https://www.csdn.com"#elif IS_HOST==2#define HOST3 "FUCK"#else#define HOST3 "https://www.baidu.com"#endif/** 配合 #if else 使用 #ifdef **///好处是可以配合 if elif  else 使用//#define TEST#define TEST2#if defined (TEST)#define PRIF "TEST\n"#elif defined (TEST2)#define PRIF "TEST2\n"#else#define PRIF "FUCK\n"#endif/** 系统宏 **///时间                __TIME__//日期                __DATE__//当前源代码文件名      __FILE__//当前源代码行号整型常量 __LINE__//当前方法名           __func__/** #line **/#line 1000 //把当前行号重置为1000#line 10 "mainn.c" //把行号重置为10,文件名重置为 mainn.c/** #pramar **/#pragma mark - massagevoid codePring();void codePring2();void codePring3();void codePring4();void codePring5();void codePring6();int main(int argc, const char * argv[]){    //#define    codePring();    //#undef    codePring2();    //条件编译    codePring3();    codePring4();    codePring5();    //系统宏    codePring6();    test2();    a = 1.0;    testNum = 10;    doit();    doit2();    return 0;}void codePring6(){        printf("TIME==%s TIMESTAMP==%s\n",__TIME__,__TIMESTAMP__); //12:18:50    printf("DATE==%s\n",__DATE__); //May 31 2016    printf("LINE==%d\n",__LINE__); //143 行    printf("FILE==%s\n",__FILE__); ///Users/Apple/Desktop/精华/C/C语言预处理器(十五)/C语言预处理器(十五)/main.c    printf("func==%s\n",__func__); //codePring6  当前方法名 (预定义标识符,非预定义宏)    printf("FUNCTION==%s\n",__FUNCTION__); //codePring6 当前方法名    printf("amd64==%d\n",__amd64__); //1  当前系统是否支持64位 __amd64    printf("APPLE==%d\n",__APPLE__); //1  当前系统为苹果    printf("VERSION==%ld\n",__STDC_VERSION__); //199901  C99    printf("HOSTED==%d\n",__STDC_HOSTED__); //1  本机环境为1,否则为0}void codePring5(){    printf(PRIF);}void codePring4(){    printf("ISHOST? HOST3==%s\n %s",HOST3,__TIME__);    }void codePring3(){    printf("MAVIX? HOST==%s\n",HOST);    printf("MAVIX? HOST2==%s\n",HOST2);}void codePring2(){    //    printf("DE==%d\n",DE);    }void codePring(){        printf("%s\n",A);        puts("c==\n");    putchar(c[0]);    puts("c end\n");        printf("f==%d e==%d\n",f,e);        printf("Num2==%d\n",Num2);    printf("Num3==%d\n",Num3(10));    int Num4(1) = 10; // 相当于 x1 = 10        printf("MAX==%f\n",MAX(30, 30.11));    printf("MIN==%f\n",MIN(30, 30.11));    }


0 0
原创粉丝点击