前言:更多内容请看总纲《嵌入式C/C++学习路》
1.C语言程序开发基本步骤
- 使用vi编写以.c作为扩展名的文件(源文件)。
- 使用gcc对源文件进行编译(将代码翻译成机器语言) MinGW是windows平台下的gcc。
- 使用命令 ./a.out 执行程序。
2.C语言特性
- C语言程序中可以直接使用加减乘除四则计算符号(+ - * / )
- ; 用来分分隔不同的处理步骤,每个用 ; 结束的处理步骤叫做一条语句
- 每条语句必须独立完成一个工作,所有C语言程序都是由大量语句构成的
- C语言程序采用分组方式管理所有的语句,每组语句用一对大括号包含,分组是多层次实现的
- 所有顶级大括号必须有名字,不同顶级大括号的名字不同,计算机根据名字区分不同顶级大括号
- 任何C语言程序中必须有一对顶级大括号叫main,这组语句叫做主函数
- 程序从主函数的第一条语句开始执行,当主函数最后一条语句结束后整个程序结束
- 每个顶级大括号在结束的时候可以遗留一个数字(非必须)
- C语言中把几十个英文单词指定为关键字,每个关键字都有专门的用途,return是一个关键字,它可以立刻结束顶级大括号的执行,还可以用来指定顶级大括号的遗留数字
- 主函数遗留数字0表示一切正常
- C语言中把所有数字进行了分组,每组叫做一个数据类型,程序中所有不带小数点的数字默认来自整数int分组
- C语言提供一组标准函数,每个标准函数用来完成特定功能,使用时需要编写函数调用语句
3.C程序书写规范
- 一行中最多包含一条语句
- 不同层次的语句要使用缩进区分开
- 在合适的地方使用空格和空行,看起来巴适
- 标识符采用驼峰方式或下划线方式书写如:XiAn 、xi_an
4.标识符书写规则
- 标识符的第一个字符必须是英文字母或下划线
- 标识符后面的字符可以是英文字母,下划线或数字
- 标识符是大小写敏感的
- 关键字不可以当标识符使用
- 标识符长度理论上没有限制(只会截取前面一些来使用,前63个的样子)
5.gcc的工作过程
- 完成所有预处理指令的处理工作
- 把所有语句翻译成计算机认识的格式(编译)
- 把程序不同部分链接起来
6.gcc的选项
- -E 只完成预处理工作
- -C 只完成预处理和编译工作(得到以.o为拓展名的目标文件,翻译好了但是不同部分之间没有联系起来)
- -O 指定新生成文件的名称,(默认是a.out,假如文件夹中有多个文件需要编译时,他们将会共同占用一个a.out,这个时候就需要重新指定生成新的输出文件)
- -std=c89/-std=c99 两个选项二选一,指定编译过程采用的标准,默认采用 c89
7.预处理指令
- 所有预处理指令都是以#做开头,不是以;做结尾
- 所有预处理指令都用来把.c文件中的内容换成另外的样子
- #include是一个预处理指令,这个预处理指令可以把另外一个文件的内容合并到当前文件中,使用这个预处理指令时需要给出文件路径,这个路径所对应的文件就会被包含进来。如果使用“ ”包含路径,则表示起点是当前文件所在目录。如果使用<>包含路径,则表示起点是系统中指定的一些目录
8.采用注释向文件中写入文字信息
- 单行注释:以 // 开头
- 多行注释: /* */ 中间的部分都是注释
9.字符数据
- 字符类型是一种数据类型,用char表示
- 字符类型中包含256个不同的字符,例如‘a’ ‘+’ ‘?’ 等
- 所有字符数据在计算机中都是采用整数表示的
- 字符数据有字符和数字两种身份
- ASCII码表中列出字符数据两个身份之间的对应关系《史上最全ASCII码对照表0-255(%d)》
- 所有字符数据分成两组,每组包含128个不同字符
- 其中一组两个身份之间的对应关系在所有计算机环境下都一样,这组数据的数字身份是0-127
- 另外一组两个身份间的对应关系在不同计算机环境下有区别,这组数据的数字身份可能是127-255或 (-1)-128
- 不可打印字符是看不见的
- 无符号字符类型也是一种数据类型,用unsigned char表示
- 无符号字符类型同样包含了字符类型中的256个不同的字符,这种类型中所有字符的数字身份为0-255
- ‘\n’ 换行字符
- ‘\r’ 回车字符,让输出位置回到行首。例如:\r后面的B回到行首,替换了第一个字母A
- ‘\t’ 制表符,跳到下一个制表位置
- ‘\’ 代表 \
- ’ ’ ’ 代表 ‘
- ’ " ‘ 代表 "
- 短整数数据类型可以记录65536个不同的整数,用short表示。 -32768 - 36767
- 无符号整数类型也包括65536个不同的整数,用unsigned short表示,范围是 0 - 65535
- 长整数类型包括2的32次方个不同的整数,范围是从-2的31次方到2的31次方减1 ,用long 或 long int 表示
- 无符号长整数类型也包括2的32次方个不同的整数,范围是从0到2的32次方减1
- 无符号长整数用unsigned long或 unsinged long int 表示
- 2的10次方=1K 2的20次方=1M 2的30次方=1G
- 在我们的计算机环境里整数类型和长整数类型一样
- 整数类型用int表示,无符号整数类型用unsigned int 表示
- 所有整数类型之间具有递增关系,他们之间有重叠部分
- C语言中可以使用两种数据类型表示带小数点的数据
- 单精度浮点类型用float表示,双精度浮点类型用double表示,单精度能表示的小数点位数少
- 在不带小数点的数字后面加u表示这个数字是无符号类型的数字,如8u
- 程序中待小数点的数字默认是double类型的数据,在数字后面加f表示float类型的数据
- 强制类型转换:(char)num,表示把num当作字符类型数据使用
10.进制与计算
计算机基础知识 —— 进制(二进制、八进制、十进制、十六进制)
C语言中的二进制、八进制和十六进制的表示
[计算机组成原理]–字节进制与补码介绍