A. 如果操作系统是C语言开发的,那么C编译器运行在什么上呢
C编译器可以理解为开发工具,按照你说的,操作系统是C语言开发的,那用什么开发它呢,用的就是C编译器吧(不止编译器,编译器只是很少的一部分,这里用它代替开发环境),C编译器要装在电脑的操作系统上吧,然后你在装有编译器的操作系统下完成了另一个操作系统的开发,然后将你完成的这个操作系统安装在另一台机器上,然后你的C开发的操作系统就运行了。所以说,C编译器是运行在需要开发C程序的操作系统下的,这里你可以把你用C语言开发的操作系统认为是一个C程序。你在开发C程序而已,那这样你就该知道你的C编译器运行在什么上面了吧。
B. c编译程序是什么
c编译程序是将c语言程序编译成目标代码程序的程序,即正确答案应该选择D。
1、c语言是目前世界上最流行、使用最广泛的面向过程的高级程序设计语言。 c语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用c语言明显优于其它高级语言,许多大型应用软件都是用c语言编写的。
2、编译就是利用编译程序从源语言编写的源程序产生目标程序的过程,其中的五个阶段分别是词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(2)c编译器运行期扩展阅读
c编译程序的语言特点
对于c编译程序来说,其语言的特点如下:
1、c语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护,而且表现能力和处理能力极强。
2、c语言具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
3、由于c语言实现了对硬件的编程操作,因此集高级语言和低级语言的功能于一体。它既可用于系统软件的开发,也适合于应用软件的开发。
4、此外,c语言还具有效率高、可移植性强等特点。因此它广泛地移植到了各类各型计算机上,从而形成了多种版本。
C. c语言编译器如何运行
编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。
1、预处理阶段:
主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)
2、汇编阶段:
插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。
3、编译阶段:
将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。
4、链接阶段:
在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。
D. C++中什么是编译时,什么是运行时,二者有何区别
编译阶段主要进行语法的检查,无误。将程序代码转换成目标代码(二进制表示,打开看不懂),没有和操作系统进行连接,不能运行。完成连接后,程序能够进入系统运行。
运行时,一定是编译过的,没有语法错误。编译时,没有生成目标文件,可能有语法错误。
E. 我下载了一个c语言编译器,编译完成后怎样运行呢
首先 你要保证编译器编译的时候没有出错
如果确定没有出错 那么 一般有两种运行方式
一种是 你的编译器自带运行按钮,那么可以通过编译器的图形界面运行
点击按钮 或者使用快捷键。
如果没有,那么可以找你编译出来的exe文件
到命令行手动运行。
PS 带参数的可执行文件 必须命令行运行。
F. 单片机执行用c编译的程序时,每执行一行语句所需要的时间是多少
不确定,这个和单片机的性能,编译器性能,语句复杂度都有关系。
就像你不能要求1.8G的CPU运行速度和2.8G的同样快,单片机的性能很重要。
同样一条C语句,不同的编译器可能翻译成不同条数的机器码指令,当然,一般一个单片机只认识很有限编译器编出来的目标码,这条基本可以忽略。
还有就是C语句是什么语句,比如运行i++一般只需要一个指令周期,i=i+1却最少需要三个。
所以你的问法应该是“核心频率是XXXHz的单片机,每秒能执行多少汇编指令?”
G. C语言文件的编译与执行的四个阶段并分别描述
开发C程序有四个步骤:编辑、编译、连接和运行。
任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。
1、预处理:导入源程序并保存(C文件)。
2、编译:将源程序转换为目标文件(Obj文件)。
3、链接:将目标文件生成为可执行文件(EXE文件)。
4、运行:执行,获取运行结果的EXE文件。
(7)c编译器运行期扩展阅读:
将C语言代码分为程序的几个阶段:
1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。
2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。
4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。
H. 同一段程序,不同的编译工具,运行时间会不同吗 就比如C-FREE和VC6++
会的,会有很大的差异的。因为不同的编译器会对代码进行不同的优化。你如果你Intel的编译器,可能会更快!
intel 编译器:
https://software.intel.com/en-us/intel-parallel-studio-xe/
I. 在c语言中,程序运行期间,其值可以改变的量叫做()
在c语言中,程序运行期间,其值可以改变的量叫做变量。
当在窗体中设计用户界面时,c语言会自动为产生的对象(包括窗体本身)创建一组变量,即属性变量,并为每个变量设置其缺省值。这类变量可供用户直接使用,比如引用它或给它赋新值。用户也可以创建自己的变量,以便存放程序执行过程中的临时数据或结果数据等等。
(9)c编译器运行期扩展阅读:
变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。如果在过程之外声明变量,则该变量可以被Script中所有过程所识别,称为Script级变量,具有Script级作用域。
变量可以保存程序运行时用户输入的数据、特定运算的结果以及要在窗体上显示的一段数据等。变量声明后没有赋值的话,编译器会自动提示并赋予默认值。
J. c语言中静态变量需要自己释放那外部变量属于静态存储方式,书上说静态变量的生存期是整个程序的运行期
对,一个运行的程序属于一个进程,进程是由操作系统管理的,程序结束了,该程序所占用的资源会由操作系统来回收。
静态变量的静态:变量占用的存地址不释放,也就是说它的地址它从头到尾一内直占着,容不给其他内存单元占用而已,其本身的值是可以改变的。
动态的变量:比如调用函数体里定义的变量,在函数执行后便释放出去,把有用的地址资源贡献给其他量,释放以后如果你用指针来打印这个地址的值的话,就很有可能不是原来的值了。
(10)c编译器运行期扩展阅读:
静态变量也可以用于存储常数。具体来说,静态变量(全局变量及汇编语言里定义的符号亦同)可用const,constant或final(根据语言决定)等关键字标识,这时其值就会在编译时设定,并且无法在运行时改变。
编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区;为防止常数变量被错误的指针写入覆盖,亦可在这块区域启用内存保护机制。