宏定义

/*

 1.所有的预处理指令都是以#开头

 2.预处理指令分3种

 1> 宏定义

 2> 条件编译

 3> 文件包含

 3.预处理指令在代码翻译成0和1之前执行

 4.预处理的位置是随便写的

 5.预处理指令的作用域:从编写指令的那一行开始,一直到文件结尾,可以用#undef取消宏定义的作用

 6.宏名一般用大写或者以k开头,变量名一般用小写

 */

#include <stdio.h>

//#define kCount 4

 int main()

{

    char *name = "COUNT";

    

    printf("%s\n", name);

    

    #define COUNT 4

    

    int ages[COUNT] = {1, 2, 67, 89};

    

    

    

    for ( int i = 0; i<COUNT; i++) {

        printf("%d\n", ages[i]);

    }

    // 从这行开始,COUNT这个宏就失效

#undef COUNT

    

    int a = COUNT;

    

    return 0;

}

void test()

{

}

宏定义例   

/*

 1.带参数的宏定义效率比函数高

int sum(int a, int b)

{

    return a + b;

}*/

#include <stdio.h>

 

#define sum(v1, v2) ((v1)+(v2))

 

#define pingfang(a) ((a)*(a))

 

int main()

{

    // pingfang(5+5) (10*10)

    // pingfang(5+5)

    // pingfang(5+5) (35)

    // pingfang(5+5)/pingfang(2)

    int c = pingfang(5+5)/pingfang(2);

    

    printf("c is %d\n", c);

    /*

    int c = sum(2, 3) * sum(6, 4);

    printf("c is %d\n", c);*/

    /*

    int a = 10;

    int b = 20;

    int c = sum(a, b);

     printf("c is %d\n", c);

    //int c = sum(a, b);*/

    return 0;

}

 

#include <stdio.h>

 

 

 

// 只要写了#if,在最后面必须加上#endif

 

 

 

//#define A 5

 

 

 

int main()

 

{

 

#ifndef A

 

//#ifdef A

 

//#if !defined(A)

 

    printf("哈哈\n");

 

#endif

 

    

 

    //int a = 10;

 

    /*

 

    if (a == 10)

 

    {

 

        printf("a是10\n");

 

    }

 

    else if (a == 5)

 

    {

 

        printf("a是5\n");

 

    }

 

    else

 

    {

 

        printf("a其他值\n");

 

    }*/

 

    /*

 

    

 

#if (A == 10)

 

    printf("a是10\n");

 

#elif (A == 5)

 

    printf("a是5\n");

 

#else

 

    printf("a其他值\n");

 

#endif

 

     

 

     */

 

 return 0;

 

}

 

 

posted @ 2016-03-28 10:12  lance.xiang  阅读(207)  评论(0)    收藏  举报