码迷,mamicode.com
首页 > 编程语言 > 详细

C语言的#if #ifdef #ifndef

时间:2018-11-27 14:50:13      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:include   情况   判断   void   编译器   理解   int   clu   col   

#if #ifedf #ifndef

   —般情况下,C语言源程序中的每一行代码.都要参加编译。但有时候出于对程序代码优化的考虑.希望只对其中一部分内容进行编译.此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译!

  条件编译是C语言中预处理部分的内容,它是编译器编译代码时最先处理的部分,

 

  条件编译里面有判断语句,比如 #if 、#else 、#elif 都由#endif结束

 

  它的意思是如果宏条件符合,编译器就编译这段代码,否则,编译器就忽略这段代码而不编译,如

  

#include<CHAP01.h>

#define i -1

void main()
{
#if (i > 0)
{
printf("%d\n", i);
printf("You defined stone!\n");
}

#elif (i == 0)
{
printf("%d\n", i);
printf("You defined river!\n");
}

#else
{
printf("%d\n", i);
printf("You defined NULL!\n");
}

#endif
}

#include<CHAP01.h>

#define i -1

void main()
{
//    int i;        条件编译的条件一般由 #define 去定义, int 类型的变量不能起到效果
//    scanf_s("%d", &i);
#if (i > 0)
    {
        printf("%d\n", i);
        printf("You defined stone!\n");
    }

#elif (i == 0)
    {
        printf("%d\n", i);
        printf("You defined river!\n");
    }

#else
    {
        printf("%d\n", i);
        printf("You defined NULL!\n");
    }

#endif
}

 

  #ifdef   判断宏是否定义, 是就执行ifdef下的代码, 否则执行else下的代码

#include<CHAP01.h>

//#define stone

#ifdef stone
    void main()
    {
        printf("You defined stone!\n");
    }
#else
    void main()
    {
        printf("You defined NULL!\n");
    }
#endif

  #ifndef    一般用于检查定义, 防止重复定义

  #ifndef stone             // 如果VALUE没有被定义
  #define stone1000          //  定义VALUE 为1000
  #endif

  自我理解, 不对的地方请指正!

  

 

 

 

 

C语言的#if #ifdef #ifndef

标签:include   情况   判断   void   编译器   理解   int   clu   col   

原文地址:https://www.cnblogs.com/stoneriver/p/10025856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!