问答题(面向对象程序设计2020第一次作业)
这个作业属于哪个课程 | 2020春福大面向对象程序设计 |
---|---|
这个作业要求在哪里 | 寒假作业1 |
作业正文 | 问答题 |
其他参考文献 | C语言编译过程 |
问答题: | |
1你认为C语言有什么缺陷(你觉得哪里用的不顺手) | |
我在使用C语言的过程中经常出现一些数组下标越界的问题,但是编译的时候不会提示错误,由于越界的内容是未知的,运行的时候就可能产生一些我想象不到的混乱的答案。如果不够熟练C语言中的语法要求,会产生逻辑问题。C语言的运算符数量多,优先级比较复杂,不易记住,所以使用的时候容易出现错误。 | |
关于平行的问题“你觉得C++和C语言比有什么优点”,因为我之前完全不了解c++,所以搜索了一些资料。下面是一些个人收获和想法: | |
C语言是面向过程的语言,C++是基于面向对象的语言。面向过程是指先通过分析得到解决问题所需的步骤,然后把这些步骤用函数一步步实现,使用的时候依次调用。面向对象是把构成问题的成分分解成几个对象,用功能来划分问题,建立对象的目的是描述某个事物在解决问题步骤中的行为。 | |
封装是将抽象得到的数据和行为(或功能)相结合,是将数据与操作数据的源代码进行有机的结合,形成“类”。 | |
首先,类是一种用户定义的引用数据类型,类的本质是数据类型,不是可以操作的数据,所以也没有开辟空间。其次,类的成员当中可以有成员变量(数据成员)和成员函数,类的属性与数据成员(也是一种数据类型)相对应,成员函数则用于操作类的各项属性,是一个类具有的特有的操作。 |
2 C语言的编译过程
C语言的编译过程包括预处理,编译,汇编,链接四个步骤。
预处理的工作包括将#include头文件和宏定义替换成真正的内容。预处理结束后,得到的是一个体积比原来文件大的文本文件。
预处理得到的程序中有数字、字符串、变量的定义,以及C语言的关键字。编译过程可以检查语法,在确认所有指令符合语法规则后,就可以将经过预处理的程序转换成汇编代码。
汇编过程将汇编代码转成机器码,生成目标文件,是二进制格式。目标文件由段组成。代码段包含的主要是程序的指令。数据段主要存放程序中要用到的各种全局变量或静态的数据。
链接过程将多个目标文件和库文件连接成最终的可执行文件。链接处理分成静态链接和动态链接。