作者OfficeGL (妤欣)
看板C_and_CPP
标题[问题] 主程式include各class.h的问题
时间Mon Jul 22 15:53:55 2019
开发平台(Platform): (Ex: Win10, Linux, ...)
vs 2017
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
vc++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
stdlib
问题(Question):
1.
我有一个主程式, 以 main() 为入口点
因为这个主程式 main 会用到其他 class A, B, C
main 本身要 include A, B, C .h
也要 include <iostream> ... 等等
但是 A, B, C.h 里面也有 include 过 <iostream> 了
这样会有问题吗? 该如何避免这个问题呢
2.
main 中需要 #define Length 透过编译时给定参数
ex.
@ main.cpp
#ifndefine Length
#define Length 100
#endif
A, B, C.h 也都有上面这段
所以main include A.h, B.h, C.h 之後就重复了
请问有办法避开吗~
谢谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.137.108.25 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1563782037.A.0AC.html
1F:→ james732: google: include guard07/22 16:26
谢谢提供关键字
3F:→ Gway: #endif07/22 16:47
谢谢告知
4F:推 Schottky: 上次的 lex 後来有顺利解决吗?07/22 17:54
有喔,谢谢你~
※ 编辑: OfficeGL (114.137.108.25 台湾), 07/22/2019 18:23:03
※ 编辑: OfficeGL (114.137.108.25 台湾), 07/22/2019 18:23:29
5F:推 s4300026: #pragma once ? 07/22 21:03
6F:→ loveme00835: 楼上的做法不好, 可以谷歌为什麽 07/22 22:07
7F:推 LPH66: 个人以为 #pragma once 的缺点只有它是 de facto 标准 07/23 08:34
8F:→ LPH66: (毕竟它本质上是 #pragma, 不会也不可能成为正式标准) 07/23 08:35
9F:→ LPH66: 其他方面来说我会觉得使用方便性上和语意上都比正式做法好 07/23 08:38
10F:推 BlazarArc: 同意楼上 07/23 18:54