嵌入式C语言--C语言关键字

目录

关键字

1.杂项

2.数据类型

char

int

long、short

unsigned、signed

float、double

void

3.自定义数据类型

struct

union

enum

typedef

4.逻辑结构

if、else 

switch、case、default

do、while、for

continue、break、goto

5.类型修饰符

auto

register

static

const

extern

volatile


关键字

        编译器预先定义了一定意义的字符串(32个关键字)。

1.杂项

sizeof

        编译器给我们查看内存空间容量的一个关键字,不存在函数调用。

        int a;

        printf("the a is %d\n", sizeof a);                //the a is 4

return

        返回的概念。

2.数据类型

        C语言操作对象:资源/内存(内存资源,LCD,LED等)。

        限制内存的大小关键字。

char

        硬件芯片操作的最小单位: bit    1     0

        软件操作的最小单位:Bety     8bit == 1B

        应用场景:

        硬件处理的最小单位。

        ASCII码表        8bit  == 256

int

        大小:

        根据编译器来决定        TC2.0

        编译器最优的处理大小:

                系统一个周期,所能接受的最大单位,int

                32bit处理器        4B        int

                16bit处理器        2B        int

long、short

        特定长度的限制符

unsigned、signed

        无符号:数据。

        有符号:数字(系统默认有符号数)。

        内存的最高字节是符号位,还是数据。

        位运算中需要特别注意有无符号。

float、double

        大小:

                float             4B

                double         8B

        内存存在的形式

整数      

        0x10                16

        0001 0000       16  

浮点常量

        1.0        1.1        double

        1.0f        1.1f       float

void

        声明标志。

3.自定义数据类型

        C编译器默认定义的内存分配不符合实际资源的形式。

        自定义 = 基本元素的集合

struct

        元素之间的和。

        struct mayabc{

                unsigned int a;

                unsigned int b;

                unsigned int c;

                unsigned int d;

        };

        struct mayabc mybuf;

union

        共用起始地址的一段内存。

        struct元素之间累加,union元素之间首地址对其。

        union myabc{

                char a;

                int b;

        };

        union myabc mybuf;

enum

        被命名的整型常数的集合。

        enum 枚举名称{常量列表};        //名称可以直接删除

        enum week{

                MOD = 0,

                TUE,

                WED

        };

        printf("the %d\n", MOD);

typedef

        数据类型的别名。

        int a;                a是int类型的变量

        typedef  int a;  a是一个int类型的外号

4.逻辑结构

        CPU顺序执行程序

        PC指针

        分支、循环

if、else 

        条件

        if(条件表达式)

                do_something

        else

                do_something

switch、case、default

         多分支

        swtich(整型数字){

                case 整型数字:

                        break;

                case 整型数字:

                        break;

                default:

        }

do、while、for

        for:次数

        while:条件

continue、break、goto

        goto:在同一个函数内使用。

5.类型修饰符

        对内存资源存放位置的限定。

auto

        默认情况下的类型(分配的内存可读可写)。

        若在{ }内,栈空间。

register

        限制变量定义在寄存器的修饰符。

        定义一些快速访问的变量。

        编译器会尽量安排CPU的寄存器去存放该变量,如果寄存器不足时,变量还是放在存储器中。

        &这个符号对register不起作用。

        ------------------------------------

        内存(存储器)        寄存器

        地址(0x001)          r0、r1...

static

        静态

        应用场景:

        1、函数内部变量

        int fun()

        {

                int a;        ====>        static int a;

        }

        2、函数外部变量

        int a;              ====>         static int a;

        3、函数的修饰符

        int fun();        ======>        static int fun();

const

        常量的定义(不能改变)。

        只读的变量。

extern

        全局量关键字。

volatile

        告知编译器编译方法的关键字,不优化。

        修饰的变量值的修改,不仅仅可以通过软件修改,也可以通过其他方式(硬件外部的用户)。

        int a = 100;

        while(a==100);

        mylcd();

----------------------------------------------------------------

        [a]: a的地址

        f1: LDR        R0,        [a]

        f2:CMP        R0,        #100

        f3:JMPeq     f1         ======>优化后   JMPeq     f2

        f4:mylcd()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值