【C++】预编译命令

本文详细介绍了C++中的预处理指令,包括#include、#define、#undef、#pragma、#import、#error、#line等,以及条件编译。讨论了#include的头文件包含方式,宏定义的常量与函数宏,#pragma的用途,如#pragma once的头文件保护,以及预定义宏如__DATE__、__FILE__等的使用。
摘要由CSDN通过智能技术生成

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结束常量宏定义,结束宏定义宏此宏不能再次使用。即时这个宏实际不存在,使

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值