避免多重包含

为了避免名字冲突,预处理器变量经常用全大写字母表示。

#ifndef指示检测指定的预处理器变量是否未定义。如果处理器变量未定义,则跟在其后的所有指示都被处理,直到出现#endif

用于预防多次包含同一头文件

1 #ifndef SALESTEM_H        //if no define
2 #define SALESTEM_H        //define
3 #endif                    //end
时间: 2024-09-30 00:56:37

避免多重包含的相关文章

头文件被重复包含,嵌套包含的两层含义

http://www.cnblogs.com/bluestorm/archive/2011/11/04/2298126.html 说明: 写代码的时候头文件命名知道要加 #ifndef xxxx #define xxxx #endif 但是我把实现都放在了 .h文件中,然后出错了...所以头文件包含,只知其一不知其二,恩,就是所谓的 //a.h #ifndef _A_H_ #define _A_H_ int max(int a, int b) { return a > b ? a:b; } #e

【转载】防止变量重复定义、头文件重复包含、嵌套包含

[转自] http://hi.baidu.com/zengzhaonong/blog/item/8a8871062d481f7f03088106.html #include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码: #include "x.h"#include "x.h" 显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码.但是下面的代码:#include "a.h"#include "

头文件重复包含(转)

#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "x.h"#include "x.h" 显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码.但是下面的代码:#include "a.h"#include "b.h" 看上去没什么问题.如果a.h和b.h都包含了一个头文件x.h.那么x.h在此也同样被包含了两次,只不过它的形式不是那么明显而已. 多重包

C/C++ 防止头文件重复包含 #pragma once 与 #ifndef 的区别

为了避免同一个头文件被多重包含/重复包含,有两种方式: 方式一: #ifndef XXX #define XXX ... ...  //声明语句 #endif  //XXX 方式二: #pragma once ... ...//声明语句 在能够支持这两种方式的编译器上面,两者没有太大区别,但任存在一些细微差别. 方式一---依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含. 缺点:缺点就是如果不同头文件的宏名不小心“撞车”,可能就会

华为C语言编程规范

DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved密级:confidentiality levelDKBA 2826-2011.52011-06-02 华为机密,未经许可不得扩散 Huawei Confidential 第2页,共61页Page 2 , Total61修订声明Revision

Google C++编程风格指南

一.头文件 1. #define的保护:所有头文件都应该使用#define防止头文件被多重包含(multiple inclusion),命名格式: <PROJECT>_<PATH>_<FILE>_H_ 为保证唯一性,头文件的命名应基于其所在项目源代码树的全路径. 2.头文件依赖:使用前置声明(forward declarations)尽量减少.h文件中#include的数量.避免多米诺骨牌效应 e.g.头文件中用到类File,但不需要访问File的声明,则头文件只需前置

【C/C++】C预处理器

C预处理器处理程序的源代码,在编译器之前运行,通常以"#"开头. C语言的预处理主要有三个言而的内容: 1) 宏定义和宏替换: 2) 文件包含: 3) 条件编译. 1. 宏定义和宏替换 "宏"是借用汇编语言中的概念,为的是在C语言程序中方便的作一些定义和扩展.这些语句以#define开头,分为两种:符号常量的宏定义和带参数的宏定义. 1) 符号常量的宏定义和宏替换 1 #define 标识符 字符串 其中标识符就称为宏名称,注意宏定义末尾不加分号. 由于预处理是在编

[C和指针]第四部分

第十一章 高级指针话题 第十二章 预处理器 第十三章 输入/输出函数 第十一章            高级指针话题 指向指针的指针 int i; int *pi; int **ppi; 变量i 是一个整数,pi是一个指向整型指针,ppi是一个指向pi的指针,所以它是一个指向整型的指针的指针. ppi = π这条语句把ppi初始化为指向变量pi. *ppi = &i;这条语句把pi(通过ppi间接访问)初始化为指向变量i.经过上面两条语句之后: 现在,下面各语句具有相同的效果(都是将变量i的值赋值

Google&#39;s C++ coding style

v0.2 - Last updated November 8, 2013 源自 Google's C++ coding style rev. 3.274 目录 由 DocToc生成     头文件        #define用法        前向声明        内联函数        -inl.h文件        函数参数顺序        include的命名和顺序    作用域        命名空间            未命名空间            命名空间