社区
C++ 语言
帖子详情
面试问了一道题,要将c++程序转换成c程序,都需要考虑什么
paidfighting
2008-06-02 05:41:15
请各位大牛和同学们踊跃发言
...全文
737
64
打赏
收藏
面试问了一道题,要将c++程序转换成c程序,都需要考虑什么
请各位大牛和同学们踊跃发言
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
64 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhaori
2008-06-04
打赏
举报
回复
[Quote=引用 50 楼 mathe 的回复:]
比如open64编译器,支持C++语法(其实就是使用了gcc的C++前端),
同时它又支持将C语言代码作为输出(使用其中whirl2c功能),
通过这种方法编译,就可以将C++代码转化为C代码。
但是产生代码中还会调用C++运行库,可以:
i)在编译时通过命令行选项禁止C++异常产生(当然如果C++源代码中显示抛出异常可能处理不了)
ii)通过修改编译器whilr2c代码(open64所有源代码公开),将对new,delete等调用转化为malloc/free等对应的c函数
[/Quote]
right
Kratos
2008-06-04
打赏
举报
回复
考虑代码能用的量,最后程序文档是要求干什么的,用最少的成本完成。其余的都是语言特性,慢慢改就可以了。
iambic
2008-06-04
打赏
举报
回复
需要考虑这个需求的合理性。
elegant87
2008-06-04
打赏
举报
回复
[Quote=引用 33 楼 Vitin 的回复:]
所以这样的编译器是不完全的,即不是完全以C语言为目标代码的。
完全的从C++到C的编译器应提供运行时支持:如果要在某个以C语言为机器语言的计算机或者C语言虚拟机上运行,只要包含在这种机器上的C++运行库就可以了。当然实际上很少会在C语言机器或C语言虚拟机上运行,那么就需要C++标准库的C源代码,而非一个运行库。
这个编译器的特征如下:
1、输入是C++源代码,这些源代码可以调用C++标准库。
2、输出是C代码,这些C…
[/Quote]
帅得不敢出门
2008-06-04
打赏
举报
回复
向后转换 这个是不是有点问题
lbaby
2008-06-04
打赏
举报
回复
啥都不用干,把c++编译器改名成c编译器,编译完毕,测试,然后告诉BOSS:OK了
wannasunny
2008-06-04
打赏
举报
回复
其实这也就只能作为面试题了!手术可以让男人变人妖的--但,也许很痛。
maplewasp
2008-06-04
打赏
举报
回复
[Quote=引用 63 楼 ClydeZhang 的回复:]
这个改动要考虑的问题与把考官进行变性手术一样多
[/Quote]
顶......
ClydeZhang
2008-06-04
打赏
举报
回复
这个改动要考虑的问题与把考官进行变性手术一样多
daiming13
2008-06-04
打赏
举报
回复
像这个问题,一般就是想让你阐述C++和C的区别
icansaymyabc
2008-06-04
打赏
举报
回复
需要考虑是否应该更换考官了。
态度决定品质
2008-06-04
打赏
举报
回复
貌似问的是两个语言的区别。
Walker-cheng
2008-06-04
打赏
举报
回复
[Quote=引用 32 楼 wanfustudio 的回复:]
那直接就崩溃
估计没啥法子了,想用c去自己实现c++的高级特性吗? 有点难度,而且难度不小
[/Quote]
Vitin
2008-06-03
打赏
举报
回复
[Quote=引用 41 楼 taodm 的回复:]
貌似能把C++翻到纯C的年代早已结束了。
最重要的,任何这样的自动工具都会导致代码完全丧失可维护性。
[/Quote]
是的,这个时代结束了。因为C++已经成熟了。人们已经愿意在各个平台上为C++写专门的编译器,以达到最佳性能,而非重用C编译器。换句话说,“将C++转换为C程序”的需求已经大大弱化了。
不过,如果仍然以此为需求,那么最好的方法仍然是写这样一个编译器。即写一个C++编译器要考虑什么,完成这个需求就要考虑什么(当然除了C子集部分)。因为C++已经是另外一门语言,而非C语言的扩展了。
Mougou
2008-06-03
打赏
举报
回复
首先需要考虑的是有没有必要这么做!!!
weichen2005
2008-06-03
打赏
举报
回复
[Quote=引用 20 楼 akirya 的回复:]
告诉他,如果写C++代码人水平不高的话,倒是可以慢慢改
要是水平高用stl很多,那么重写是最明智的选择。
[/Quote]
有道理。。。 。。。
taodm
2008-06-03
打赏
举报
回复
[Quote=引用 35 楼 Vitin 的回复:]
引用 29 楼 taodm 的回复:
楼上2位谁给个C++ to C的编译器链接我试试?
呵呵,我倒是没有接触过这样的编译器。
如果自己写的话,工作量与写一般的C++编译器相差不大,仅在C子集方面会简单一些。
所以,还是在网上找找吧。
早期的C++编译器就是以C语言为目标代码的,然后再连一个C编译器。著名的如CFront就是这样的。
[/Quote]
貌似能把C++翻到纯C的年代早已结束了。
最重要的,任何这样的自动工具都会导致代码完全丧失可维护性。
jieao111
2008-06-03
打赏
举报
回复
跑题了?
Joyfulmath
2008-06-03
打赏
举报
回复
[Quote=引用 25 楼 Vitin 的回复:]
楼上说得不错。标准库是编译器的一部分,必须实现。
可以自己写一套C++标准库的源代码(也用C++写),这套源代码的要求是它只能调用C标准库(因为目标语言是C)。
然后在“从C++到C的编译器”上编译通过,这样就可以得到C++标准库的C代码。
此后,当用户代码调用C++标准库时,链接上对应的C代码就可以了。
[/Quote]
都是牛人!
mathe
2008-06-03
打赏
举报
回复
比如open64编译器,支持C++语法(其实就是使用了gcc的C++前端),
同时它又支持将C语言代码作为输出(使用其中whirl2c功能),
通过这种方法编译,就可以将C++代码转化为C代码。
但是产生代码中还会调用C++运行库,可以:
i)在编译时通过命令行选项禁止C++异常产生(当然如果C++源代码中显示抛出异常可能处理不了)
ii)通过修改编译器whilr2c代码(open64所有源代码公开),将对new,delete等调用转化为malloc/free等对应的c函数
加载更多回复(44)
有史以来最全的C语言笔试
面试
题
全面的总结了近几年IT企业招聘时笔试
面试
题
目,详细分析了各种
问
题
的出
题
目的并给出了详尽的解答。希望对求职者有帮助。
C与
C++
面试
题
,很多公司的
C与
C++
面试
题
,很多公司的笔试
面试
题
,方便大家学习。
嵌入式C与
C++
语言精华文章集锦
嵌入式C与
C++
语言精华文章集锦嵌入式C与
C++
语言精华文章集锦
嵌入式C/
C++
精华
本文重点强调了在嵌入式中C/
C++
编程的技巧以及注意的
问
题
!
嵌入式C和
C++
语言精华文章集锦
嵌入式C和
C++
语言精华文章集锦
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章