C++防止头文件反复包括】的更多相关文章

两种方法: (1)#pragma once. (2)ifndef/define/endif 差别: (1)#pragma once是编译器相关的.有的编译器支持,有的编译器不支持: (2)#ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译.所以在全部支持C++语言的编译器上都是有效的,假设写的程序要跨平台,最好使用这样的方式.…
google C++编程风格对头文件的包括顺序作出例如以下指示: (1)为了加强可读性和避免隐含依赖,应使用以下的顺序:C标准库.C++标准库.其他库的头文件.你自己project的头文件.只是这里最先包括的是首选的头文件,即比如a.cpp文件里应该优先包括a.h. 首选的头文件是为了降低隐藏依赖,同一时候确保头文件和实现文件是匹配的.详细的样例是:假如你有一个cc文件(linux平台的cpp文件后缀为cc)是google-awesome-project/src/foo/internal/foo…
基于gSOAP使用头文件的C语言版web service开发过程例子 一服务端 1 打开VS2005,创建一个工程,命名为calcServer. 2 添加一个头文件calc.h,编辑内容如下: 1//gsoap ns service name:   calc 2//gsoap ns  service port:  http://localhost/calc.wsdl 3//gsoap ns service location:   http://localhost 4//gsoap ns serv…
1.#define保护 使用#define防止头文件被多重包括.命名格式为:<PROJECT>_<PATH>_<FILE>_H_ 比如,foo中的头文件foo/src/bar/baz.h #ifndef FOO_BAR_BAZ_H_ #define FOO_BAR_BAZ_H_ ... #endif //FOO_BAR_BAZ_H_ 2.头文件依赖 使用前置声明尽量降低.h文件里#include的数量. 头文件被更改时,须要又一次编译.那些包括了该头文件的代码也须要又一…
#include #include <>:一般是对系统库文件的引用,编译器会去系统文件文件夹下查找. #include "xxx.h":一般是对自己定义文件的引用,编译器首先会去用户文件夹下查找.然后再去安装文件夹查找,最后去系统文件文件夹查找. #import #import的功能与#include几乎相同,可是能够解决头文件反复导入的问题,而#include会有反复导入头文件的问题. 比方class文件A.B都引用了class C.假设class D引用了class A…
1.预处理器: 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤.简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理. 我们将把 C 预处理器(C Preprocessor)简写为 CPP. 所有的预处理器命令都是以井号(#)开头.它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始.具体的列表可以在网上找到,这里不再复述. a.几个常用的: #define MAX_ARRAY_LENGTH 20  (所有的MAX_ARR…
先给解决的方法:假设您觉得您的头文件包括木有问题,请用WDK的build命令编译试试,非常有可能是由于您用了VS 2010 + EASY SYS 环境的问题 使用VS 2010 + EASY SYS 搭建的环境中,包括了ke.h 这是在网上找的关于用到EPROCESS和ETHREAD的头文件. 在这样的环境下编译一直出错. 在这里不得不大声说一句:妈B,怎么调戏都调戏不好... 如这张图: 解决的方法是: 不用调.. 真的不用调. 仅仅须要用WDK带的编译器BUILD,就OK watermark…
1.  头文件定义例如以下: /* declears in "funcs.h" */ FUNC_1(ID_FUN1_001) FUNC_1(ID_FUN1_002) FUNC_2(ID_FUN2_001) FUNC_2(ID_FUN2_002) 2.  多次包括头文件 #define FUNC_1(opt) opt, #define FUNC_2(opt) enum aaa { #include "funcs.h" ID_FUN1_END }; #undef FUN…
#include "book.h" #include<iostream.h> 在刚開始学习都会有这样的迷惑.有的程序用<>.有的却用"".那么二者究竟什么差别呢,什么情况下使用呢? <>和""表示编译器在搜索头文件时的顺序不同.<>表示从系统文件夹下開始搜索,然后再搜索PATH环境变量所列出的文件夹,不搜索当前文件夹,""是表示从当前文件夹開始搜索,然后是系统文件夹和PATH环境…
下面的概述是参考的这篇文章:http://blog.csdn.net/bingxx11/article/details/7771437 c语言编程中也有,也需要头文件, 头文件不只是C++的类才需要! 比如: c中的string.h,  内存操作的头文件 #include <mem.h> 即是: c语言中, 函数/变量的声明和实现, 也可以像c++一样, 头文件中, 哪些函数/变量需要使用extern来说明? c语言有一个约定: 凡是在对应的.c文件中, 有那个函数的实现的, 就不加exter…