|
|
发表于 2022-1-27 10:37:47
|
显示全部楼层
答案
1、C语言编写的源代码转换成汇编语言的过程叫什么?
linux下C语言的编译过程:预处理,编译,汇编,链接
预处理:将所有的头文件宏定义替换成真正的内容 gcc -E -I./inc test.c -o test.i
编译:预处理后的程序转换为汇编的过程 gcc -S -I./inc test.i -o test.s
汇编:将汇编代码转换成机器码 gcc -c test.s -o test.o
链接:将多个目标文以及所需的库文件(.so等)链接成最终的可执行文件
2、编译型语言和解释型语言的本质区别是什么?
3、在 Linux 系统上用 C 语言编译的可执行程序,是否能在 Windows 系统上执行?
编译型语言:源程序=》编译器=》可执行程序
解释型语言:源程序=》解释器(将用到的源程序变为可执行代码)
编译型语言一般是不能跨平台的,也就是不能在不同的操作系统之间随意切换
可执行程序不能跨平台 不同平台上的函数不一样
源代码不能跨平台
解释型语言 每次执行程序都需要一边转换一边执行,每次执行程序都需要重新
转换源代码,所以解释型语言的执行效率比编译型语言低。
计算机的底层功能,或者关键的算法,一般都是c/c++实现的
应用开发(网站,小工具)使用解释型语言
解释型语言可以跨平台是源程序可以跨平台不是说解释器可以跨平台,不同的系统
有这不同的解释器
4、 解释型编程语言是如何实现跨平台的? |
|