❶ 在linux里,c程序的编辑、编译、调试的详细步骤是什么
(1)用工具写好C程序...比如vi
(2)打开终端,进入你存放C语言代码的路径 例如: cd /opt/
(3)gcc a.c -o abc 意思是:把你的a.c编译成abc可执行文件
(4)在当前目录终端下 运行生成的abc,例如: ./abc 前面的.不要掉了
后面可以用gdb进行调试,你可以自己去学习...这是最基本的!!
❷ 用c语言写程序,同样的代码,为什么编译时间每次都不一样
这个编译器内部有预编译的东西,所以时间不一样,而且计算机的内存,后台进程不一样,时间也就不一样了
❸ C程序的开发分为哪些步骤,这些步骤可以省略或互换吗
C程序的开发一般可以分为以下几个步骤:
规划阶段:对希望程序要做什么有一个清晰的想法,考虑程序需要的信息,程序需要进行的计算和操作,以及程序应该向你报告的信息。
设计阶段:决定程序要如何完成它,用户界面应该是怎么样的,程序应该如何组织,目标用户是谁,有多长的时间来完成实现这个程序等等。
编写代码阶段:将设计构思转变为C语言,通常需要使用文本编辑器来创建一种称为源代码的文件,该文件包含程序设计的C实现形式。
编译阶段:编译源代码,编译细节取决于编程环境。编译器也会检查程序是否为有效的C语言程序。
运行阶段:编译器生成的可执行文件就是打开之后可以直接能够运行的文件,通常在操作系统中双击文件或者右键打开就可以运行。
测试和调试阶段:测试和调试程序,看程序是否按照预期进行。
维护和修改阶段:根据用户反馈或者需求变更进行程序的维护和修改。
这些步骤在大多数情况下是不能省略或互换的。比如,如果你没有进行清晰的规划和设计,你的代码可能会变得混乱且难以维护。如果你没有进行编写代码,那么你的程序就无法实现你的规划和设计。如果你没有进行编译和测试,你可能会在运行时遇到各种错误。因此,这些步骤通常是有序进行的,每一步都对开发高质量的程序至关重要。
❹ C语言编译的时候会不会先生成中间语言
C语言编译时,会生成中间语言叫做汇编语言,再由汇编生成机器语言!同时,C语言程序编译的过程经过4个阶段:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。
1)预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
2)编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
3)汇编阶段将汇编语言翻译成机器指令
4)链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
具体详情可以参照:
http://wenku..com/link?url=-
❺ C语言中 ,一个语句执行一般(家用PC)需要多少时间
这个需要分情况来看。
1.C语言源程序通过预处理然后编译,产生汇编代码,不同的汇编代码和指令有不同的执行时间。
2.一个指令的执行时间,用其所需要的指令周期(执行一条指令所需要的时间)来衡量。对于单字节指令,就是一个读取-执行周期(fetch-execute cycle),对于多字节指令,还需要更多的指令周期。
3.一个指令周期,一般是由若干个机器周期(完成一次基本操作需要的时间,比如获取变量在RAM当中的地址)组成。
4.再一个,时钟周期,这个可以形象一点地和我们通常所说的主频联系起来,比如CPU核心的主频是2.5GHz,则时钟周期为0.4ns,这个是计算机当中最小的时间计量单位。一个机器周期由若干个时钟周期组成。
综上所述,你的问题没有明确的答案。这取决于你的CPU的主频,执行的是何种类型的C语言语句,是否编译器有对其进行优化。
❻ C语言编译原理是什么
编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。
1、预处理阶段:
主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)
2、汇编阶段:
插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。
3、编译阶段:
将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。
4、链接阶段:
在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello
world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。
❼ c语言从main开始执行,那编译也是从main开始吗
编译不是从main函数开始的。编译工程:先编译预处理命令,也就是#include,#defined,#ifndef。。。的预处理命令。然后为全局变量分配空间,才编译main函数。