从程序执行效率方面考虑,请简述C语言采取的一些措施和原因(这是去年的复试题,请给出比较官方的语言)
发布网友
发布时间:2022-06-14 10:59
我来回答
共2个回答
热心网友
时间:2023-10-18 12:08
说实话,这个问题问的比较大,C语言被誉为最灵活的语言,九曲十八弯,千变万化,如何是程序高效率运行取决于程序员对计算机底层的理解和对C语言的熟练掌握。但单从答题的方面考虑,我在这里提出几点仅供参考:
1.使用指针:对于指针的理解简单点可以认为类似于汇编中的寻址方式,正是指针的存在使C语言威力无穷。有些程序用其他语言也可以实现,但C能够更有效地实现;有些程序无法用其它语言实现,如直接访问硬件,但C却可以。正因为指针可以拥有类似于汇编的寻址方式,所以可以使程序更高效。
2.使用宏函数:函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。函数调用是要使用系统的栈来保存数据的,如果编译器里有栈检查选项,一般在函数的头会嵌入一些汇编语句对当前栈进行检查;同时,CPU也要在函数调用时保存和恢复当前的现场,进行压栈和弹栈操作,所以,函数调用需要一些CPU时间。而宏函数不存在这个问题。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间,而使程序可以高效运行。在频繁调用同一个宏函数的时候,该现象尤其突出。
3.使用位操作:位操作可以减少除法和取模的运算。在计算机程序中数据的位是可以操作的最小数据单位,理论上可以用"位运算"来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。
4.循环嵌套中将较长循环设为内存循环,较短循环设为外置循环,以减少cpu跨切循环层的次数,提高程序的运行效率。
热心网友
时间:2023-10-18 12:09
这绝对是编译原理和编程语言的综合运用,这题是哪个学校的?
我觉得百度知道上多数C语言和计算机专业的人可答不上来啊,自然也包括了我。
如果你是跨专业的……你考到了一个超强的学校啊……追问电子科大