立即学习:https://edu.youkuaiyun.com/course/play/8088/175768?utm_source=blogtoedu
1. 文件包含
将另一个文件的内容包含到本文件中,一般通过#include来实现
一般形式:#include "文件名"
说明:
(1)很多公共修改都可以放到这个.h文件中进行了。但是你一旦修改了这个.h,也相当于修改了#inlcude这个.h的所有.cpp文件,那这些.cpp文件显然也得重新编译了
(2)一个#inlcude只能包含一个文件,如果要#include多个文件,那就使用多个#include
(3)文件包含是可以嵌套的。一个头文件中可以#include其他头文件
(4)自己写的.h头文件用#include".h",标准的头文件使用#include<.h">
2. 条件编译
条件编译几种形式:
(1)形式1:
#ifdef 标识符
程序段1(一堆代码)
#else
程序段2
#endif
作用:当标识符被定义过(#define来定义),则对程序段1进行编译,否则对程序段2进行编译。#else部分可以没有
(2)形式2:
形式2:
#ifndef 标识符
程序段1(一堆代码)
#else
程序段2
#endif
作用:若标识符未被定义,则编译程序段1,否则编译程序段2;与形式1正好相反。#else部分可以没有
(3)形式3:
#if 表达式
程序段1
#else
程序段2
#endif
作用:当指定的表达式值为真(非0)时就编译程序段1,否则编译程序段2,那我们事先给定一定的条件,就可以使程序在不同条件下执行不同的功能。
(4)形式4:
#if 表达式1
程序段1
#elif 表达式2
程序段2
#else
程序段3
#endif
作用:当表达式1值为真(非0)时就编译程序段1,否则当表达式2的值为真(非0)则编译程序段2,否则编译程序段3
条件编译的好处:
(1)条件编译可以减少目标程序长度
(2)解决跨平台开发问题,增加程序的可移植性,增加程序的灵活性,如:
#if _WIN32
//windows专用函数
//WaitForSingleObject()
#elif __linux__
//linux专用函数
//epoll()
#else
#endif