Ⅰ 关于 C语言中的“编译”和“组建”的问题。
如果没有加stdlib.h,在编译阶段编译器认为system是没有声明过的表示符,但是这是一个函数,所以编译器默认这个函数是外来的(也就是说不是你自己写的),并且默认其返回值是int,把这些信息写到编译的目标代码里
给你一个警告是因为未声明的函数既有可能是你忘记声明外部的函数,也可能是你自己笔误,不论哪种情况都不是什么好事
而在连接阶段,连接器会在连接的标准库里找到system这个函数,所以连接的时候没有任何问题
再给你一个例子,可以避免以后不必要的错误
#include<stdio.h>
#include<math.h>
int main()
{
printf("%f\n", sqrt(2.0));
return 0;
}
比如你漏了第二行的math.h,那么编译器在sqrt(2.0)的地方也会给警告,连接的时候看上去也没问题,但是这时候你有可能得不到想要的结果(取决于编译器是否能猜出sqrt是标准函数),因为sqrt本应该返回double,编译器却默认其返回int
Ⅱ C语言是如何编译与组建的,跨平台性
科普一下,C最早是出现在Unix下的,Windows那都是后话了,C出现的时候Windows还没开发出来呢。
C有个比较特别的称呼,叫中级语言,因为它有高级语言的特性又能跟底层硬件很好的交互所以才有这么个说法。DOS时代在C里面嵌上一段汇编直接从并口读个数上来那是很流行的,现在没见谁在VC里面这么干吧。Windows也不让啊。想访问硬件怎么也得通过驱动。
说远了,C在多种平台下可以实现代码级的共享,跨平台就需要重新编译了。
但是,我也见过有的软件是可以在多种平台上运行了,可能有什么特别的技术,可以先识别一下操作系统,再运行相应的代码。这个应该是在编译的时候有特殊的技巧。
C编译、连接器网上有现成的代码,一般不是很专业的技术人员没有去研究它。我一直把玩编译原理的视为天人,有能力把编译原理那本书看完的就很不容易了,再要能领会其中精要那就成才了,能把龙书虎书鲸书都搞明白的那就是一流专家了。
说白了C语言是如何编译与组建的,大道理谁都知道,具体怎么实现的,没几个懂的。所以对您的提问我只能坐这等着高手了!
Ⅲ c语言中编译和组建有什么区别急急急!!
你说的编译就是把你编写的c语言转换为二进制的计算机语言,然后是执行,执行就是执行刚才得到的二进制的语言。其实就是经过编译产生.OBJ文件,再将编译产生的.obj文件输入内存与系统提供的库函数连接,得到可执行文件.exe,最后将可执行文件.exe调入内存并使之运行。。。
Ⅳ 怎样用c语言编译
C编译的整个过程很复杂,大致可以分为以下四个阶段:
预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
汇编阶段将汇编语言翻译成机器指令。
链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
Ⅳ C语言 编译、组件、执行
一般来说编译过后就成了基本上能执行的2进制代码。但是这些2进制代码并不完善,一个程序往往需要调用不止一部分的代码,所以需要把这些代码全部整合起来才能执行。
即时你的程序看起来只有一个文件,但是编译过后,多多少少里面至少会调用到一些操作系统功能,和其它的一些设置,所以依然需要组建这个过程把这个程序和这些系统默认的代码组建起来形成一个完成、单一的可执行文件。所以一般组建过程就包含了组建内部和外部代码,一般来说内部代码就是我说的系统预留的必要的一些代码(例如怎么具体完成把一些字符显示在屏幕上呀这些功能),而外部代码就是额外的调用自己写得或者别人写得其它程序功能(往往当你的程序调用了非C标准函数的时候)。
所以就算你的代码可以编译,但是可能因为组建并不成功(例如需要组建的代码本身有bug,或者丢失,或者版本不匹配),你的程序依然可能无法正确运行。
Ⅵ C语言是如何编译与组建的,跨平台性
c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的
exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码
Ⅶ C语言编写好代码后,怎么编译,最后生成可执行文件
材料/工具:vc6.0
1、打开c语言编辑工具,在工具中写入程序的源代码。
Ⅷ C语言如何编译
先创建一个工程,选择win32的吧,然后一直下一步直到完成
然后在左边找到你创建的一个和你工程名字一样的文件打开,如果没错的话里面应该是一个main函数示例,把它删,把你的代码粘贴到这个文件,按F5会提示编译,确定后开始编译,如果编译没问题会在编译完成后运行(调试态)
娟猪下班了没有
Ⅸ c语言如何把c程序编译成可执行的exe文件
1、编写一段简单的代码,如下图所示,编辑一段简单的输出语句。