请问多文件编译时的#include问题?

lieyu063 2004-11-23 08:08:56
如果我在myfile3中
#include"myfile1.h"
#include"myfile2.h"
而其中myfile1.h和myfile2.h又都包含#include<iosteam>和#include<string>那么这样会发生什么
事情?这两个都文件会被编译两次吗?
...全文
124 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fldx 2004-11-24
  • 打赏
  • 举报
回复
是那些标准的库文件里写好了的,应该是这样的。
#ifndef __cplusplus
#error Must use C++ for the type iostream.
#endif

#ifndef __IOSTREAM_H
#define __IOSTREAM_H

#if !defined( __DEFS_H )
#include <_defs.h>
#endif

#if !defined( __MEM_H )
#include <mem.h> // to get memcpy and NULL
#endif
从iostream.h里截下来的。
greenteanet 2004-11-24
  • 打赏
  • 举报
回复
回答楼上的:需要显示写出来.
  • 打赏
  • 举报
回复
楼上的,哪只是M$的这样用.
kuchao 2004-11-24
  • 打赏
  • 举报
回复
现在用的是
#pragma once
kimmy_zhang 2004-11-23
  • 打赏
  • 举报
回复
#ifndef,#endif
这个需要显示地写出么?
caio0 2004-11-23
  • 打赏
  • 举报
回复
楼上的说得对,也就是说自己在写头文件的时候一定要注意这一点。
zyk7069 2004-11-23
  • 打赏
  • 举报
回复
不会,因为两个被包含的文件都使用#ifndef,#endif指令,因此,文件是被包含了两次,但两指令间的代码在第二次被包含时不执行。

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧