首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在lib.cpp资料中包含lib.h文件有什么用

2012-12-22 
在lib.cpp文件中包含lib.h文件有什么用?有两个文件:lib.h和lib.cpp:lib.h文件内容如下:#ifndef LIB_H#defi

在lib.cpp文件中包含lib.h文件有什么用?
有两个文件:lib.h和lib.cpp:

lib.h文件内容如下:

#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y);
#endif


lib.cpp文件内容如下:
#include "lib.h"
int add(int x,int y)
{
return x + y;
}


lib.cpp文件中为何要写#include "lib.h",到底有什么用?
三个月过去了,这个问题还是没搞懂,唉。
[最优解释]

这个就是一个调用.h文件的方式
[其他解释]
几个原因吧。
第一就是extern "C"的这个声明在.cpp中是没有的,include .h后就有了。
第二就是.cpp中需要用到其他的type,函数原型,是在.h中声明的。

说到底,LZ最后是要理解预处理/编译/链接这样一个过程,最后才能理解为什么要这样组织.h和.cpp。

[其他解释]
引用:
ib.cpp文件中为何要写#include "lib.h",到底有什么用?

为什么要写??不写难道不更好吗?

小程序当然不写没有问题 但是如果程序非常的大了就要用到“模块化程序”的设计方式、
就是分成一个一个的模块。当你需要那个模块的时候就用*.h来调用这个模块 并且可以重复的使用 很方便。
[其他解释]
你可以这么理解:
*.h 是要给其他人看的(就像一个人的外表)
*.cpp 是自己的东西(裸体的一个人,不应该给其他人看)

不知道这个比喻合适不~



[其他解释]
这个很奇怪?声明嘛
[其他解释]
#include "lib.h"
int add(int x,int y)
{
return x + y;
}

函数头文件,就是声明这个lib.h

就相当于把
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y);
#endif

中的:
extern "C" int add(int x,int y);

直接放到lib.cpp中使用。
这样做是为了写大型程序时,能够快速的分类,修改,调试代码
[其他解释]
ib.cpp文件中为何要写#include "lib.h",到底有什么用?

为什么要写??不写难道不更好吗?
[其他解释]
引用:
ib.cpp文件中为何要写#include "lib.h",到底有什么用?

为什么要写??不写难道不更好吗?


不写的话,就不是 extern "C" 链接的啊,这是区别啊

当然如果.cpp 里直接写 
extern "C" int add(int x,int y)
{
return x + y;
}

那么包含头文件就多余了
[其他解释]
都是和一个*.cpp一个*.h一一对应 

热点排行