#if!defined #define if defined else

为了避免同一个文件被include多次

1 #ifndef方式
2 #pragma once方式

在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。
方式一:

#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__
... ... // 一些声明语句
#endif

方式二:

#pragma once
... ... // 一些声明语句


#ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况

#pragmaonce则由编译器提供保证:同一个文件不会被包含多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。带来的好处是,你不必再费劲想个宏名了,当然也就不会出现宏名碰撞引发的奇怪问题。对应的缺点就是如果某个头文件有多份拷贝,本方法不能保证他们不被重复包含。当然,相比宏名碰撞引发的“找不到声明”的问题,重复包含更容易被发现并修正。

方式一由语言支持所以移植性好,方式二 可以避免名字冲突。
#if!defined()#define if defined else

一般可以这样处理:
#infndef XX
#define XX
#if _MSC_VER >1000
#pragma once
#endif
.
.
#endif
注意: _MSC_VER 是出于版本兼容性考虑,定义
Defines the compiler version.Defined as 1200 for Microsoft Visual C++ 6.0. Always defined.

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/189922.html

更多阅读

如何使用 IF AND OR 条件函数 if or函数

如何使用 IF AND OR 条件函数——简介在工作和日常生活中都会用到Excel表格中的公式和函数,在数据筛选的时候尤为重要,下面让咱们一起认识下IF、AND和OR函数的用法IF函数是判断式的计算函数,假设单元格的值检验为True(真)时,就执行条件成

if函数的使用方法 sum函数的使用方法

if函数的使用方法——简介在excel中if函数是最经常用到的逻辑函数,通过它可以减少很多繁琐复杂的工作,判断单元格内容满足什么条件则对应返回相应的值。下面将解释if函数的语法以及通过if函数的操作实例来告知大家该函数的用法。if函

if函数怎么用 sumif函数的使用方法

if函数怎么用——简介Excel中的IF函数用于实现多分支选择结构的实现,是结构化编辑中与顺序、循环并列的一种结构。IF函数的实现方法灵活多样,但是无论其表现多么灵活,只要掌握了其本质用法,其它的扩展用法将会变得简单易行。下面小编将

BAT语句:if语句和for语句

BAT语句结构类似于C语言,批处理也有它的语句结构。批处理的语句结构主要有选择结构(if语句)、循环结构(for语句)等。if语句(选择结构)if语句实现条件判断,包括字符串比较、存在判断、定义判断等。通过条件判断,if语句即可以实现选择功

声明:《#if!defined #define if defined else》为网友白吃先森分享!如侵犯到您的合法权益请联系我们删除