在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。
[其他解释]小程序当然不写没有问题 但是如果程序非常的大了就要用到“模块化程序”的设计方式、
就是分成一个一个的模块。当你需要那个模块的时候就用*.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",到底有什么用?
为什么要写??不写难道不更好吗?
[其他解释]不写的话,就不是 extern "C" 链接的啊,这是区别啊
当然如果.cpp 里直接写
extern "C" int add(int x,int y)
{
return x + y;
}
那么包含头文件就多余了
[其他解释]都是和一个*.cpp一个*.h一一对应