C++ 预编译命令
C++预处理指令
#include
#define
#undef
#pragma
#import
#error
#line
#ifdef
#ifndef
#if
#else
#elif
#endif
宏以#起始 不以;结束
一. #include 文件包含
预编译期发现#include后,将会寻找HeaderName并把其包含到当前文件中
EG:#include <HeaderName>
常见形式:
#include <iostream.h> //
#include <iostream> //
#include "iostream" //
#include "TestHeader.h" //
#include "../TestHeader.h" //
1. #include <iostream.h>和#include <iostream>区别
#include <iostream.h>是老规范,现已经抛弃
#include <iostream>是新规范,使用名称空间避免名称冲突。即将所有的定义放在了一个名称空间std中
2. #include <iostream>和#include "iostream"区别
#include <iostream>直接在系统的路径下查找此头文件。多是系统的头文件
#include "iostream"首先在当前目录查找,如果没有找到再到系统目录查找
3. 头文件的多次包含问题
编译器对每个文件只编译一次生成一份机器代码.obj,如果在多个地方包含了同一个头文件,则会出现多次包含的错误,即试图让编译器将此文件编译多次生成多份机器代码。
预编译保护解决此问题。
二. #define #undef 宏替换
#define 宏 宏主体
宏展开:在代码中出现宏,会用宏实体代替宏
#define 定义常量、函数宏
#undef 结束常量、函数宏定义
1. 常量宏
常量宏:是最常见的一种形式。即使用一个宏代替实际的常量,如数据、字符、字符串常量等
#define CONST_VAL 2
#define MEG_EG "Test Macro!"
#define CHARACTOR_EG 'M'
注:
(1) 可以使用#undef结束常量宏定义,结束宏定义宏此宏不能再次使用。即时这个宏实际不存在,使