专业编程培训机构——完成蜕变以后轻松拿高薪
电话+V:159999-78052 ,欢迎咨询c语言程序的开发流程包括,[python实用课程],[C++单片机原理],[C#网站搭建],[Nodejs小程序开发],[ios游戏开发],[安卓游戏开发],[教会用大脑用想法赚钱实现阶层跨越]
一、C语言编程的一般步骤有哪些?
首先明确要解决的问题;
其次分析问题并选择想要利用的算法,或者自己想一个的算法;
画流程图,明确解决问题过程中的逻辑关系和时序关系;
然后才是上机编写代码;
之后是debug调试,基本就可以执行了。
具体就上机编写代码来讲,首先需要打开C++的开发环境,然后新建一个工程;
然后新建一个文件(如果是VC6.0就可以继续写了,如果是VS20**的话就需要在文件菜单中选择将文件移入工程);
在文件中写入代码,然后就可以编译运行了。
二、C语言源程序的编译过程包括哪三个阶段
词法分析阶段:读入源程序,对构成源程序的字符流进行扫描和分解,识别出单词,
语法分析阶段:机器通过词法分析,将单词序列分解成不同的语法短语,确定整个输入串能够构成语法上正确的程序。
语义分析阶段:检查源程序上有没有语义错误,在代码生成阶段收集类型信息
中间代码生成阶段:在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式
代码优化:这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间
C语言程序的编译过程
首发2024-05-1214:25·生菜八分编译C程序
这里,我们所说的C语言程序的编译过程指的是从C语言源代码生成可执行程序(或库)的过程。通常,该过程要经过四个阶段,包括:预处理编译汇编链接C语言程序编译过程示例程序举例来说,我们在名为main.c的源文件中输入下面一段简单代码,它在main函数中立即返回,返回值是用宏定义的0值。/*演示C语言程序的编译过程*/#defineSUCCESS0intmain(){returnSUCCESS;}如果使用gcc编译器,我们可以逐步观察这个示例程序的编译过程。预处理gcc用-E选项让编译器在预处理阶段结束后立即停止,不再往下执行编译。预处理过程对翻译单元中的代码进行词法和语义分析,其输出是程序在目标机器上的中间表示。$gcc-Emain.c-omain.i#1"main.c"#1"<built-in>"#1"<command-line>"#1"/usr/include/stdc-predef.h"134#1"<command-line>"2#1"main.c"intmain(){return0;}预处理结束后,注释被替换成了空白行,宏定义被替换成了实际值。如果有#include预处理指令,该指令后面的头文件会被包含进中间文件。编译gcc的-S选项让编译器在编译阶段结束后立即停止,不再往下执行汇编。编译阶段将预处理阶段生成的中间表示翻译为目标机器上的汇编代码。$gcc-Smain.i-omain.s.file"main.c".text.globlmain.typemain,@functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset16.cfi_offset6,-16movq%rsp,%rbp.cfi_def_cfa_register6movl$0,%eaxpopq%rbp.cfi_def_cfa7,8ret.cfi_endproc.LFE0:.sizemain,.-main.ident"GCC:(Ubuntu5.4.0-6ubuntu1~16.04.12)5.4.020160609".section.note.GNU-stack,"",@progbits这里,汇编代码使用的是ATT格式,我们看到寄存器EAX中被写入了0值,这是因为main函数最后的ret指令返回时会将寄存器EAX中的值作为返回值。汇编gcc的-c选项在编译或汇编之后立即停止,不再往下执行链接。$gcc-cmain.s-omain.o$filemain.omain.o:ELF64-bitLSBrelocatable,x86-64,version1(SYSV),notstripped这里,gcc对汇编代码执行汇编生成了名为main.o的目标文件。由file命令可知,该文件是一个ELF格式的可重定位文件,下一步将对这个目标文件执行链接。链接不加任何选项时,gcc对目标文件执行链接,生成可执行文件。$gccmain.o-om如以上步骤一样,我们用-o指定输出文件名称,这里是m。该文件是一个可执行文件,尽管它不输出任何内容。最后需要注意的是,以上步骤只是为了演示C语言程序的编译过程。实际上,如果要从示例中的main.c生成可执行文件m,我们只需要一条命令即可。$gccmain.c-om2之所以可以这样写是因为在正常情况下,对C源文件调用gcc会执行以上所有预处理、编译、汇编以及链接过程,直接生成可执行文件。#头条创作挑战赛##C语言每日小知识#【WINDRISES EMPLOYMENT PROGRAMMING】尊享对接老板
电话+V:159999-78052
机构由一批拥有10年以上开发管理经验,且来自互联网或研究机构的IT精英组成,负责研究、开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。