C++寒假第一次作业之问答题

这个作业属于哪个课程 2020年面向对象程序设计
这个作业要求在哪里 问答题作业要求
这个作业的目标 了解C/C++的优缺点,以及相关编译过程,自行安装开发环境
作业正文 见下文
其他参考文献 百度百科之编译

问题一:你认为C语言有什么缺陷(你觉得哪里用的不顺手)?

·缺陷:(1)C语言危险性高。比如C语言里可以把一个浮点型数据赋给一个整型变量,这样会丢失精度,而编译器只会警告,不会报错。我之前学过一点点Java,在Idea IDE上试了也一下上述做法,发现编译器直接报错了。再比如C语言使用的指针和数组,如果编程者没有正确及时地给指针变量赋值,或是访问了数组时越界了,编译器都不会报错,而这些操作都可能会使程序没法实现我们预期的功能。这么看来,用C语言编程会比较自由,但可能会有一些比较危险甚至不符合我们预期的表达不被编译器发现或禁止。(2)结合运用大量运算符写出的C语言程序容易会让人费解。在C语言中,有众多可使用的运算符。就我个人体验来说,在阅读那些把很多运算符结合在一起使用的C代码时,我需要厘清其中众多运算符的优先级,结合性,这样的C代码对我来说会比较难读懂。

问题二:简述一下C语言/C++的编译过程。

·(1)预处理 把源代码分割或处理成特定单元—预处理记号(preprocessing token)用来支持语言特性,展开头文件/宏代替/去掉注释/条件编译(预处理通常能使源代码在不同的执行环境中被方便的修改或者编译)
(2)编译 检查语法(词法和语法分析),生成中间代码,分析过程中发现语法错误会给出提示信息。
(3)汇编 把中间代码转换机器语言代码(目标代码)。
(4)链接 由链接器(一个独立的程序)将你编写的目标代码,系统的启动代码和库代码(预编译好的库函数)这三个部分合并成一个文件,即可执行文件。

猜你喜欢

转载自www.cnblogs.com/031902522ycy/p/12234924.html