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

简介: 条件编译 #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
相关文章
|
2月前
|
编译器 C语言
宏定义include"stdio.h"可加可不加?
宏定义include"stdio.h"可加可不加?
14 0
|
7月前
|
编译器
头文件ifndef用法及意义#pragma once
头文件ifndef用法及意义#pragma once
65 0
|
7月前
|
编译器 程序员 C++
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
101 0
|
C++
万能头文件#include<bits/stdc++.h>
#include<bits/stdc++.h>这个头文件的含义
374 1
|
编译器 C语言
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用
111 0
|
编译器
#define定义的宏
#define定义的宏
125 0
#define定义的宏
【C++的万能超级无敌头文件 #include <bits/stdc++.h> 】
【C++的万能超级无敌头文件 #include <bits/stdc++.h> 】
|
编译器 C++
Dev-c++中将头文件和头文件函数分离,编译主函数跳出undefined reference to 的问题解决
Dev-c++中将头文件和头文件函数分离,编译主函数跳出undefined reference to 的问题解决
Dev-c++中将头文件和头文件函数分离,编译主函数跳出undefined reference to 的问题解决
|
编译器 C语言
C语言 预处理详解(#include、#define、#if,特殊预定宏)
C语言 预处理详解(#include、#define、#if,特殊预定宏)
560 0
C语言 预处理详解(#include、#define、#if,特殊预定宏)