我有一些关于头文件的问题(我正在谈论c,但我认为它将是相同的C++),让我们假设我有一些my_ADT.c
文件(我已经实现的功能和实际struct
),也my_ADT.h
里面我有pointer for my struct
Question:
如果我使用ADT Set
实施my_ADT
我需要包括set.h
两个文件my_ADT.h and my_ADT.c
或包括只my_ADT.h
就足够了(里面my_ADT.c我#include "my_ADT.h"
)在此先感谢包括头文件
Q
包括头文件
1
A
回答
1
如果my_ADT.h
包含在my_ADT.c
文件,那么你只能在my_ADT.h
中包含set.h
。
3
有3个场景
set.h
仅在my_ADT.h
set.h
需要只需要my_ADT.c
set.h
需要在这两个my_ADT.h
和my_ADT.c
set.h
是没有必要的:-)
对于方案3)添加#include "set.h"
到文件my_ADT.h
,文件,其实,并#include "my_ADT.h"
在my_ADT.c
(适当包括警卫,你不可能包括set.h
也向C文件)没什么。
对于方案2)包括set.h
仅在my_ADT.c
对于方案1)包括set.h
仅在my_ADT.h
0
在瘾PMG回答您必须知道避免的#include问题的一个好办法就是围绕所有包含预编译程序指令的头文件都会检查.h文件是否已包含在内。引起多发性头包含
#ifndef __my_ADT_header
#define __my_ADT_header
/*
* your header declaration here
*/
#endif
这个防止错误
希望这有助于
相关问题
- 1. C++头文件和包括
- 2. 包括头文件C++
- 3. 包括模板头文件
- 4. 混淆,包括头文件
- 5. 包括DDK头文件
- 6. 包括头部(STL)头文件
- 7. make文件:头包括另一头C++
- 8. 基类包括.cpp文件头文件
- 9. 在附加头文件中包含头文件包括路径
- 10. HOWTO:条件包括头文件
- 11. 听不懂,包括头文件
- 12. 阴谋不包括C头文件
- 13. 包括模板类型的头文件
- 14. 包括对方的C++头文件
- 15. 回合包括头文件使用C
- 16. C++头文件包括组织
- 17. C:包括源文件,而不是头
- 18. 包括DLL中的Qt头文件
- 19. 头,不cpp文件,并包括订购
- 20. 包括一个Windows DDK头文件
- 21. GCC包括窗口中的头文件
- 22. Xcode自动完成头文件/包括?
- 23. 如何包括makefile文件头目录
- 24. PHP - 处理POST和头文件包括
- 25. 包括libclang头
- 26. 包括头
- 27. C++静态库依赖项,头包括头文件
- 28. 圆C++头包括
- 29. 包括头与PHP
- 30. 圆C++头包括