当前位置:首页 » 编程语言 » c语言函数不可以单独编译

c语言函数不可以单独编译

发布时间: 2025-09-25 23:01:31

㈠ C语言编译原理

编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。

1、预处理阶段:

主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)

2、汇编阶段:

插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。

3、编译阶段:

将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。

4、链接阶段:

在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。

㈡ C语言问题·。

1.高级语言使用______来引用存储在内存中的数据。
这个的话指针和引用都可以吧,JAVA中就没有指针
2.一个C程序的执行时从__开始 ___结束
运行从main函数的入口开始,main函数结束就结束了
3.正确的是(为什么)
A C语言中的函数不可以单独编译
错,gcc -c XXX.c 可以在没有main函数的情况下编译.c文件啊
B C语言中的每条可执行语句最终都被转换成二进制机器指令
这个是对的,因为计算机只懂看二进制机器码,C语言或其他语言是给人看的,是连接程序员和计算机之间的中间语言。无论什么语言,最终都会被翻译成二进制码让计算机解析执行

4.下列高级语言语句的含义是什么?
x=a+b+c;
将a,b,c三个变量的值求和后赋给x
d=c-b+a;
c的值减去b的值再加上a的值后赋值给d变量
z=z+1;
z变量的值加1后再重新赋值给z变量
x=y/z;
y的值除以z的值后赋值给x变量
kelvin=celsius+273.15.
celsius变量的值加上273.15后赋值给kelvin变量

㈢ C语言中头文件和源文件写法有什么区别

相同点:
头文件与源代码都是源文件,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都可以使用类型定义和常、变量定义,都可以包含函数的声明和实现,都能包含宏定义,都使用相同的调用规范。

不同点:
C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而头文件不得包含函数入口,也就是说,头文件不可以单独编译成一个程序,仅仅包含程序片断或者仅仅定义常、变量。

关联:
头文件是专为源代码调用而写的静态包含文件,可被源代码文件中的#include编译预处理指令解释,而将头文件完整拷贝到源代码的指令处,从而在编译时相当于在源代码中插入了函数声明或者实现。

某些头文件包含了静态库中的函数调用声明,包含了LIB文件的调用信息,编译时静态链接进程序;而某些头文件是专为方便API调用而写的,里面包含了动态链接库的调用信息和规范,只有在运行时将DLL载入内存提取函数执行。

也就是说,其实你将头文件里的信息完全写到源代码里,是可以实现完全相同的功能的。如果你想要学写头文件,可以参照标准C/C++库的h文件。

热点内容
数据库数据冗余度 发布:2025-09-26 01:53:04 浏览:822
阴阳师脚本号 发布:2025-09-26 01:53:02 浏览:445
平板如何刷回安卓系统 发布:2025-09-26 01:52:16 浏览:747
浪潮服务器插电脑显示红灯 发布:2025-09-26 01:50:02 浏览:257
无法解析服务器的dns地址win10 发布:2025-09-26 00:57:14 浏览:372
安卓作业软件哪个好用 发布:2025-09-26 00:28:10 浏览:636
不需要安装的软件密码在哪里 发布:2025-09-25 23:54:59 浏览:860
linux怎么查看服务器配置 发布:2025-09-25 23:36:33 浏览:528
c语言函数不可以单独编译 发布:2025-09-25 23:01:31 浏览:160
ireport插件服务器地址 发布:2025-09-25 22:54:56 浏览:571