c++ 预处理与头文件保护简述

原创 2018年04月17日 19:01:19

c++的预处理变量有两种状态:已定义和未定义。

  为了避免头文件的一些内容在程序执行过程中被重复包含,我们可以使用以下指令进行头文件保护:

#define:把一个名字设定为预处理变量,另外两个指令则分别检查某个制定的预处理变量是否已经定义;

#ifdef:当且仅当变量已定义时为真;

#ifndef:当且仅当变量未定义时为真;

#endif:一旦检查结果为真,则执行后续操作直到遇到#endif指令为止。

     通过使用这些功能就能有效地防止重复包含的发生。

例如:

#ifndef  BOOOK_DATA_H

#define  BOOOK_DATA_H

#include<string>

struct Book_data

{

......

};

#endif

      第一次包含BOOOK_DATA_H时,预处理器将顺序执行后面的操作直至遇到#endif为止。此时,预处理变量BOOOK_DATA_H已定义,而且BOOOK_DATA_H也会被copy到我们的程序中来。后面如果再一次包含BOOOK_DATA_H,则#ifndef结果为假,编译器将忽略#ifndef到#endif之间的部分内容。

C++语言基础

C++是一门高效而实用的程序设计语言,本课详细介绍C++语言中的封装、数据隐藏、继承、多态的实现,主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。课程继续关注学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。
  • 2015年03月01日 10:55

#define、预处理、头文件保护符

一、#define //定义宏 #define [MacroName] [MacroValue] //取消宏 #undef [MacroName] //普通宏 #define PI (...
  • geeglet
  • geeglet
  • 2012-11-12 16:25:17
  • 3497

C++头文件保护符和变量的声明定义

#ifndef #define #endif头文件保护符和变量的声明和定义,有例子有真相。
  • wxc237786026
  • wxc237786026
  • 2014-08-04 23:49:28
  • 3282

C/C++语言中头文件的保护宏

保护宏就是C/C++头文件开始处的宏判断和宏定义,可以避免该头文件被多次加载执行而导致编译错误的宏。...
  • zzfenglin
  • zzfenglin
  • 2016-04-09 11:36:00
  • 1923

c++ 学习笔记-----头文件预处理

    类的定义一般放在头文件中,但因为在一个给定的源文件中,一个类只能被定义一次(如果在多个文件中定义一个类,那么每个文件中的定义必须是完全相同的),为了避免含有类的定义的头文件被多次包含,造成类被...
  • txg703003659
  • txg703003659
  • 2010-11-12 19:32:00
  • 559

c++ 避免头文件重复引用 (pragma once与 #ifndef的区别)

如何防止头文件被重复引用? 有两种方法: 1.方法一:  使用:   # pragma  once  2>方法二: 使用:  # ifndef      #define     #e...
  • ZHL30041839
  • ZHL30041839
  • 2014-07-12 18:43:32
  • 1593

c预处理、头文件

花了点时间研究了一下,c的预编译阶段。 item content OS win7 64 vs vs 2013 ul 在一个项目下见了两个文件:source1.c,source2....
  • u011457853
  • u011457853
  • 2015-05-25 10:45:24
  • 213

C++_3种预处理功能

1.文件包含#include 作用:把指定的源文件或头文件的全部内容包含到当前文件中。 形式1:#include,直接按系统标准方式检索文件目录。 形式2:#include"文件名",在当前的源...
  • GSH_Hello_World
  • GSH_Hello_World
  • 2016-10-16 22:28:42
  • 692

C++预处理程序

分类: Linux c++开发 电子书 2013-09-11 21:17 276人阅读 评论(0) 收藏 举报 目录(?)[+] C++应用程序开发中离不开预处理程序...
  • tangzhilinhk
  • tangzhilinhk
  • 2014-07-10 11:52:10
  • 615

C++ 预处理、编译、汇编、链接

一个C++程序一般需要经过以下几个步骤才能成为可执行程序: 那么,在以上的每一步中,编译器到底做了哪些工作呢? 一、编译器预处理 C++编译器自带预处理器,在程序编译之前,由预处理器对C++源程序完...
  • u011974126
  • u011974126
  • 2015-08-26 11:14:33
  • 703
收藏助手
不良信息举报
您举报文章:c++ 预处理与头文件保护简述
举报原因:
原因补充:

(最多只允许输入30个字)