嵌入式C语言基础精炼汇总

1,数据的表示

数值数据表示

数据的表示常有十进制、二进制、十六进制和八进制。

非数值数据表示

非数值数据包括文字、符号、图像、语言和逻辑信息等,也都是以0/1形式存在。

字符数据在机器内也被变换成二进制编码的形式存储,普遍采用的是ASCII码。

2,程序的编译和调试

gcc 编译器

gcc 是GNU 推出的多平台编译器,可将C、C++ 源程序编译连接成可执行文件,支持以下后缀:

  • .c ——c语言源代码
  • .h —— 程序所包含的头文件
  • .i —— 已经预处理过的C 源代码文件
  • .s—— 汇编语言源代码文件
  • .o—— 编译后的目标文件

以test.c 的文件为例,程序编写完成后,就要开始编译了:

gcc test.c -o test  //对程序进行编译的命令
gcc test.c -o test -Wall    //该指令对程序编译后还可以报错

./test  //该命令使程序执行
程序调试

利用 _ FILE _ (文件名), _ LINE_(当前行号), _ FUNCTION _(函数名) 实现代码的跟踪调试:

printf("%s,%s,%d\n",_FILE_,_FUNCTION_,_LINE_);

3,数据类型

1,数据类型分类

在这里插入图片描述

2,基本数据类型

这里仅提及以下两种数据类型:

  • bool 类型,运用bool 类型时需要引入头文件“stdbool.h”
  • char 类型
类型名称长度(字节)值域
char1-128~127
signed char1-128~127
unsigned char10~255

4,常量

常量是指在程序运行期间其数值不发生变化的数据,常用的有整数常量,浮点数常量,字符常量,字符串常量。

下面重点讨论一下字符常量
字符常量是指一个单一字符,其表示形式是由两个单引号包括的一个字符。可以把字符常量看做一个字节的正整数。

例如:

char a,b,u,v;
a='F';  //将70送给a
b='A'+2;    //b存放的是'C'字符
u=' '+'B';  //u存放的是'b'字符
v='b'-32;   //v存放的是'B'字符

它们分别相当于下列运算:
a=70;
b=65+2;
u=32+66;
v=97-32;

编程练习:一个水分子的质量为3.0*10-23 g,一夸脱水大约有950g ,编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子。

程序截图:

在这里插入图片描述

5,变量

  • 变量基础
    变量名由字母、数字、下划线组成,不能以数字开头,不能和C 的关键字重名
    在程序运行时,变量占据存储空间的大小由其数据类型决定。
    变量在内存空间中的首地址,称为变量的地址。

  • 变量的存储类型
    1,auto
    auto 说明的变量只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里(默认是随机值)
    2,register
    register 称为寄存器型,register 变量是想将变量放入CPU 的寄存器中,这样可以加快程序的运行速度。如申请不到就使用一般内存,同auto 。
    不能用“&” 来获取register 变量的地址。
    3,static
    static 变量称为静态存储类型的变量,既可以在函数体内,也可在函数体外说明。(默认值为0 )
    局部变量使用static 修饰,有以下特点:
    一,在内存中以固定地址存放的,而不是以堆栈方式存放;二,只要程序没结束,就不会随着说明它的程序段的结束而消失,它下去再调用该函数,该存储类型变量不再重新说明,而且还保留上次调用存入的值。
    4,extern
    当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可以引用这个变量。
    extern 称为外部参照引用型,使用extern 说明的变量是引用在其他文件中函数体外部说明的变量。
    static 修饰的全部变量,其他文件无法使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阔升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值