C语言的初始知识

零基础入门C语言

C语言第一课

C语言最简单的程序


#include<stdio.h> //开头有#的代表预编译int main(void)	
int main(void)/*void意思是无*/
{
printf("wcnm"); return 0;
}

#include<stdio.h>
include意思是包含,stdio.h是C语言中的标准输入输出头文件。(可以理解为打开了名为
stdio.h的工具箱)
int main(void)
main是入口函数,int代表入口函数的返回值类型。(程序执行的入口,可以理解为程序的入口)
每个C语言项目只能有一个入口函数,main这个名字是固定写法
printf(“wcnm”);
是stdio.h头文件中的一个函数,作用是将引号内内容显示到控制台上。(输出引号内内容到控制台)
return 0; 返回一个值并退出main函数,到这程序就结束了。
注释:不参与编译,给人看单行注释//
多行注释/**/ 拓展内容:
头文件的两种包含方式
#include<stdio.h> 标 准 库 目 录 下 的 头 文 件 ( 目 录 在 哪 上 网 查 ) #include"head.h"通过路径方式加载的头文件,基本用来包含自己写的头文件
return
程序中把返回值设置为0,是指在以上代码都正常执行的情况下,如果程序有问题在vs2019中不会返回0
int main(void)
void意思是无,入口函数括号内是参数列表,不需要参数所以写上了void也可以选择什么都不写
#预编译命令
代码前有#字符的代表这是个预编译命令,意思是在编译之前执行的命令,#inlcude也是预编译命令。在编译之前会把头文件的内容全部导入到文件内,相当于直接把头文件内容粘贴到此 处

C语言编译过程和运行过程
c 语言的代码编译过程是从上往下的。
预 处理 -> 汇编 ->连接(记住这个就行了)
从.c到exe详细流程(仅供了解):
C 源程序头文件 --> 预编译处理(cpp) --> 编译程序本身 --> 优化程序 --> 汇编程序 -->
链 接程序 -–> 可执行文件
编译预处理
读取C语言源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理主要包括以下四个方面
(1)宏定义指令
(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif (3 )头文件包括指令,如#include"FileName"或者#include等
(4) 特殊符号,预编译程序可以识别一些特殊的符号
预编译程序所完成的基本上是对源程序的"替代"工作。经过此种替代,生成一个没有宏 定义、没有条件编译、没有特殊符号的输出文件。这个文件的含义和没有经过预处理的 源文件是相同的,但内容不同。下一步,此输出文件将被编译程序翻译成为机器指令
编译阶段
经过预编译得到的输出文件中,将只有常量,如数字、字符串、变量的定义、以及C语言 的关键字,如main,if,else,for,while,{,},+,-,*,\,等等。预编译程序所要做 的工作就是通过词法分析和语法分析,确认所有指令都符合语法规则后,将其翻译成等 价的中间代码表示或汇编代码
中 间语言是一种面向语法,易于翻译成目标程序的源 程序的等效内部表示代码。其可理

优化阶段

解性及易于生成目标代码的程度介于源语言和目标语言之间。常用的中间语言有逆波兰 表示、四元式、三元式和树表示等。(来自百度百科)

优化处理是编译系统中一项比较艰深的技术。它涉及到的问题不仅同编译技术本身有关,而且 同机器的硬件环境也有很大的关系。优化一部分是对中间代码的优化。这种优化不依赖于具体 的计算机。另一种优化则主要针对目标代码的生成而进行的。
经过优化得到的汇编代码必须经过汇编程序的汇编转换成相应的机器指令,方可能被机 器执行。
汇编过程
汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。对于被翻译系统处理的 每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码
链接程序
由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。 例如,某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函 数调用等);在程序中可能调用了某个库文件中的函数,等等。所有的这些问题,都需 要经链接程序的处理方能得以解决
链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符 号同该符号在另外一个文件中的定义连接起来。

好玩的system函数
必 须包含头文件#include<stdlib.h>
int system(char *command);
system函数的功能是发出一个DOS(Windows控制台)命令,如果我在Windows控制台中输入命令pause那么就会暂停,在源文件中使用system(“pause”);也会使整个程序暂停shutdown -s -t 00(有兴趣可以试试这个命令)。
还可以用system函数去执行文件例如system(“C:/xxxx/xxxx/xxxx.exe”)


 #include<stdio.h>
 #include<stdlib.h> 
 int main(void)
{
system("pause");//pause暂停system("cls");//cls清屏return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值