当前位置:   article > 正文

条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<> 和#include““的区别_条件编译只能注释吗

条件编译只能注释吗

//条件编译:满足条件就编译,不满足就不编译----不等于注释
      
int main()
{

    //1.  #if  常量表达式(可以是1,0,1+2,1-2等)+       #endif
#if 1     //#if  1为真,参与编译                   #if 0为假,不参与编译---等价于注释
    printf("呵呵\n");
#endif    
    return 0;
}
       //2.多个分支的条件编译 #if常量表达式  +  #elif常量表达式  + #else常量表达式...+ endif
       //一个一个进行判断,上一个为真,就不用考虑下一个了
int main()
{
#if 1==2
    printf("呵呵\n");
#elif 2==3

    printf("哈哈\n");
#else 3==4
    printf("嘿嘿\n");
#endif 4==4
    printf("灰灰\n");
    return 0;
}

            //判断宏是否被定义
//1.#ifdef==if define宏        +    #endef宏
int main()
{
#ifdef TEST//如果TEST定义,就参与编译,否则就省略,(像注释一样)
    printf("呵呵\n");
#endif
    printf("哈哈\n");
    return 0;
}

//2.#ifndef==if!define       +    #endef宏
int main()
{
#ifndef TEST//如果TEST没有被定义,就参与编译,否则就省略,(像注释一样)
    printf("呵呵\n");
#endif
    printf("哈哈\n");
    return 0;
}
 
                 //嵌套使用时
#if defined(OS_UNIX)
  #ifdef OPTION1
    unix_version_option1();
  #endif
  #ifdef OPTION2
    unix_version_option2();
  #endif
#elif defined(OS_MSDOS)
  #ifdef OPTION2
    msdos_version_option2();
  #endif
#endif


    //引头文件方式#include<>  (库文件的包含)        和#include""  (本地文件的包含,自定义)
    //本质区别是查找策略的区别
    //""查找:1.去自己代码所在的目录下查找,2.如果第一步找不到,则在库函数的头文件目录下查找
    //<>查找:自己去库函数头文件所在的目录下查找
    //可以用""替代<>的文件,但是反过来不行,,,,,在库里面能用<>就用<>,,,,,自己定义的用""


    //防止一个文件被重复多次定义
    //1.在文件第一行加上#pragma once
    //2.     #ifndef __ADD_H__  (ADD_H_是文件名,最好大写)
    //       #define __ADD_H__
    //       .....
    //       .....
    //       #endif

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号