//条件编译:满足条件就编译,不满足就不编译----不等于注释 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