.i文件是做什么用的

xiao_potato 2007-02-27 10:02:34
产品的代码出现不少.i文件,不是很明白其用途。
上网搜了些资料,http://ruger.linux-fans.com/2006/11/ 如下说:

.i 预处理后的C文件;编译,汇编
.ii 预处理后的C++文件;编译,汇编

有几个问题想请教一下各位:
1、.i文件相对于.cpp文件有什么不同?
2、什么情况下需要用.i文件?
3、用.i文件有什么好处?
4、VC编译器认.i文件吗?还是只有UNIX下的编译器才有这类文件?
...全文
5481 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
skfox 2007-02-28
  • 打赏
  • 举报
回复
其实这2种中间的目标文件在开发特别是调测分析定位问题中非常有用,通过这个预编译后生成的.i,.ii文件,对比源码文件,可以更好的理解编译器的预编译处理过程及相关机制,发现一些代码中隐藏的错误
systemthink 2007-02-28
  • 打赏
  • 举报
回复
gcc
认为预处理后的文件(.i)是C文件,并且设定C形式的连接.
g++
认为预处理后的文件(.i)是C++文件,并且设定C++形式的连接.

至于它们和 C/C++文件的区别,
就是一点, 预处理完成的工作,
比如 #if , #define 的替换等等 ...
(看看 C/C++ 预处理相关的知识)
acange 2007-02-28
  • 打赏
  • 举报
回复
1、.i文件相对于.cpp文件有什么不同?
你可以自己手动产生.ii 文件. 比如你有一个 x.c 源c++文件, 你在linux 下,可以 g++ -E x.c > x.ii 你可以比较一下他们的不同. x.ii是 经过预处理的文件. c 文件同上, 把g++ 换成别的.

2、什么情况下需要用.i文件?
你可以对.i 文件直接编译和联结,生成 可执行文件.

3、用.i文件有什么好处?
.i 文件 只是一个中间产物.无所谓好坏.

4、VC编译器认.i文件吗?还是只有UNIX下的编译器才有这类文件?
这个和预处理器 编译器有关.
jixingzhong 2007-02-27
  • 打赏
  • 举报
回复
gcc
认为预处理后的文件(.i)是C文件,并且设定C形式的连接.
g++
认为预处理后的文件(.i)是C++文件,并且设定C++形式的连接.

至于它们和 C/C++文件的区别,
就是一点, 预处理完成的工作,
比如 #if , #define 的替换等等 ...
(看看 C/C++ 预处理相关的知识)
jixingzhong 2007-02-27
  • 打赏
  • 举报
回复
它是环境相关的

65,186

社区成员

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

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