社区
C++ 语言
帖子详情
面试问了一道题,要将c++程序转换成c程序,都需要考虑什么
paidfighting
2008-06-02 05:41:15
请各位大牛和同学们踊跃发言
...全文
715
64
打赏
收藏
面试问了一道题,要将c++程序转换成c程序,都需要考虑什么
请各位大牛和同学们踊跃发言
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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/
C++
面试
题
视频讲解
《C/
C++
面试
题
视频讲解》课程是由WangTeacher精心制作一部视频教学实战课程,涵盖了C/
C++
的常见
面试
题
,可以帮助开发者顺利通过C/
C++
开发岗位的
面试
。课程结合了本人15+年的软件开发和设计经验,把最先进的编程技巧融合到课程中,学到家了就是高级工程师,你值得拥有!适合人群:小学中学生、高中生大学生,就业想转行都可以学习编程。 逻辑思维差,空间想象差,编程可以改善。 平时爱唱歌,却五音不全,写
程序
很合适。 想高薪就业的大学生,是一个不错的选择。
从
一道
面试
题
看
C++
隐式类型转换
从
一道
面试
题
看
C++
隐式类型转换 Posted on 2013-03-17 14:52 XiaoH在博客园 阅读(894) 评论(4) 编辑 收藏 所谓隐式类型转换,就是定义的不同类型的数据在运算时,由编译器自行转换撑同一数据类型后再进行运算,而完全无需
程序
员介入的过程。 很多时候在笔试
面试
时可能被
问
到这样一些类似的
问
题
,比如: 1 int a = 0; 2 a
c/
c++
面试
题
(一)
除了关于
c++
虚函数这个
问
题
以外,其他的大多数
问
题
都与哪种编程语言关系不大,大多数是原理性和基础性的
问
题
,少数是工作经验
问
题
,我试着给大家分析分析。 语言基础
C++
虚函数这是
面试
初、中级 C ++ 职位一个概率95%以上的
面试
题
。一般有以下几种
问
法: 在有继承关系的父子类中,构建和析构一个子类对象时,父子构造函数和析构函数的执行顺序分别是怎样的? 在有继承关系的类体系中,父类的构造函数和析构函数一定要申明为 virtual 吗?如果不申明为 virtual 会怎样? 什么是
C++
多态?
C++
多
[
一道
搜狗输入法的
面试
题
]
C++
转换构造函数和类型转换函数
今天
面试
遇到
一道
有关
C++
转换构造函数的
题
目,之前经常见到默认构造函数、拷贝构造函数、析构函数,但是从没听说过转换构造函数,隐式转换函数也是一样,
C++
的确是够博大精深的,学习之路很长啊! 其实我们已经在C/
C++
中见到过多次标准类型数据间的转换方式了,这种形式用于在
程序
中将一种指定的数据转换
成
另一指定的类型,也即是强制转换,比如:int a = int(1.23)(
C++
形式)或者int a ...
c语言大华
面试
题
,大华股份的
一道
笔试
题
C/
C++
下面这段
程序
调试了之后结果显示为 5,-7,-2;#include"stdio.h"#include"iostream"using namespacestd;int main(void){unsigned int a=5;int b=-7,c=4;if(b+a>0)c=a+b,b=c-a;elsec=a-b,b=c+a;cout<return 0;}本以为结果会是c=12,b=17,a...
C++ 语言
64,643
社区成员
250,474
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章