头文件 代码文件

引用:http://www.cnblogs.com/renxs/archive/2012/01/11/2319132.html

     在学习C++之前我们需要了解C++文件结构。C++的代码文件有头文件(*.h)和代码文件(*.cpp)之分。两者合起来我们称为单元文件。实际上 编译器也是一个cpp一个cpp文件的编译然后再连接各个编译文件的结果文件(C++编译过程会在以后篇章介绍)。C++/C程序的头文件以“.h”为后 缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。

     大多数情况下头文件和代码文件是一一对应的。在头文件里主要写一些函数(全局函数),变量(全局变量),数据类型的定义(其实就是用户自定义类,类中的函数实现一般在代码文件中)等声明。这样可以在多个代码文件*享这些函数,变量和数据类型的定义等。

   头文件

   头文件是不被编译的,cpp中引用头文件实际上是当预编译的时候将头文件中的内容插入到cpp文件中。因此变量的定义、函数的定义不要写到头文件中。因为头文件很可能要被多 个cpp引用。当连接的时候可能会出现重复定义的情况。

有2种常见的错误:

1>同一编译单元的头文件重复引用,可能会出现重复定义

2>不同编译单元引用同一头文件,链接时发现重复定义

1、为了防止头文件被重复引用,应当使用 #ifndef  #define ... #endif 结构

    但是是不是所有的头文件加上这个,能防止出现重复引用导致重复定义的错误呢?

    答案是否定的。在不同的编译单元引用同一头文件的时候,还是会出现重复定义的错误。

   这种结构只能防止第一种情况下的错误。

2、用 #include  <test>或者<test.h>格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。

     用 #include “test”或者"test.h" 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。

3、C++ 标准头文件与C头文件区别与联系以及C风格字符串

接下来讲解:C++ 宏和预编译 预编译头

ps:VC中编绎C和C++是分大小写的

上一篇:Oracle 数据库多路归档,防止单点故障


下一篇:开发者和系统管理者最喜爱的开源工具Vim 起步学习的五个技巧