栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【c++预处理】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【c++预处理】

C++预处理

提示:本文参考自陆文周主编的Qt5 开发及实例


文章目录
  • C++预处理
  • 前言
  • 1.宏定义命令
  • 2.文件包含命令
  • 3.条件编译命令


前言

C++预处理命令有三种,即宏定义命令、文件包含命令和条件编译命令。
生成规则:
1.在程序中均用“#”引导
2.每条预处理命令必须独占一行
3.行尾不允许有分号“;”


1.宏定义命令

#define可以定义一个符号常量,例如

#define PI 3.1415926

这就是宏定义命令,它将3.1415926用PI代替,PI称为宏名。
宏定义需要注意以下几点:
1). #define、PI、3.1415926之间一定要有空格,为了与普通标识符相区别,宏名通常被定义为大写。
2).宏被定义后,通常不允许再重新定义,只有当使用如下命令时才可以重新定义。

#undef 宏名

3).一个定义过的宏名还可以用于定义其他新的宏。
4). 宏还可以带参数,例如:#define MAX(a,b) ((a)>(b)?(a):(b)),
其中(a,b)是宏MAX的参数表,如果在程序中出现下列语句:x = MAX(3, 9);
则预处理后变为:x = (3 > 9 ? 3 : 9);,带参数的宏相当于一个函数的功能,但比函数简洁。

2.文件包含命令

指的是将另一个源文件的内容合并到源程序中。C++语言提供了#include命令用于实现文件包含的操作,它有如下两种格式:

#include <文件名>
#include "文件名"

文件名通常以“.h”为扩展名,因此将其称为"头文件"。
格式<>:包含由系统提供的并放在指定子目录的头文件;
格式"":包含由用户定义的放在当前目录或者其他目录下的头文件或其他源文件。

3.条件编译命令

一般情况下,源程序中所有的语句都参加编译。但有时也希望根据一定的条件去编译源文件的不同部分,即“条件编译”。条件编译使得同一源程序在不同的编译条件下得到不同的目标代码。C++提供的条件编译命令有下列几种常用的形式。
格式1:

#ifdef <标识符>
	<程序段1>
[
#else
	<程序段2>
]
#endif 

其中,#ifdef、#else、和#endif都是关键字,<程序段>是由若干条预处理命令或语句组成的。含义:如果标识符已经被#define命令定义过,则编译<程序段1>,否则编译<程序段2>。
格式2:

#ifndef <标识符>
	<程序段1>
[
#else
	<程序段2>
]
#endif 

含义:如果标识符没有被#define命令定义过,则编译<程序段1>,否则编译<程序段2>。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号