嵌入式C语言语法拾遗

学习C、查阅C基本语法好去处:
C 语言教程 | 菜鸟教程

嵌入式C的好习惯:

①、常量定义为大写字母形式

②、在指针变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。


数据类型:

v2-b186df642e807608c00fe69291808888_b.jpg

各数据类型取值范围:

v2-676d65bfbdf0a5338f83a4b964b0692a_b.jpg

1、数据的 移位、置1、清0、取反

移位 :??>>x ??右移x位

例如:x=PB_IDR>>2&0x01怎么理解?

PB_IDR>>2是将PB_IDR中的数据右移两位,&0x01是求与,这样x即为PB引脚2的状态

置1: a |=(1<<x); a的第x位置1

清0:a &= ~(1<<x); a的第x位清0

取反:a^=(1<<x); a的第x位取反


2、 结构体 struct

结构体类似于面向对象语言中的属性类的定义,是用户自己定义的数据结构。

结构体定义方法:

        ①、 	 struct 结构体名
	 {
     
             成员列表;
	 }
	 struct 结构体名 变量名;
-----------------------------------------------------
②、     struct 结构体名
        {
     
             成员列表;
        }变量名;
----------------------------------------------------
③、     struct      //没有结构体名
         {
     
            成员列表;
         }变量名; 
      

结构体变量的使用形式:

        
          结构体变量名
          .
          成员名
        
      

结构体指针:

要知道,指针就是地址,那结构体指针就是结构体首地址。

而指针变量是存放地址的容器,结构体指针变量是存放结构体的首地址容器。

        struct 结构体名  *结构指针名;
      

访问其中一个结构体元素的成员变量

        
          结构体指针名
          ->
          成员名
        
      

等同于

        
          
          *
          结构体指针名)
          .
          成员名
        
      

3. extent

变量的声明有两种情况:

1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。

2、另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。 例如:extern int a 其中变量 a 可以在别的文件中定义的。

        extern int i; //声明,不是定义
int i; //声明,也是定义
      

如果需要在一个源文件中引用另外一个源文件中定义的变量,我们只需在引用的文件中将变量加上 extern 关键字的声明即可。


4.常量格式:

整数常量

整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。

整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。

下面列举几个整数常量的实例:

        212         /* 合法的 */
215u        /* 合法的 */
0xFeeL      /* 合法的 */
078         /* 非法的:8 不是八进制的数字 */
032UU       /* 非法的:不能重复后缀 */

      

以下是各种类型的整数常量的实例:

        85         /* 十进制 */
0213       /* 八进制 */
0x4b       /* 十六进制 */
30         /* 整数 */
30u        /* 无符号整数 */
30l        /* 长整数 */
30ul       /* 无符号长整数 */

      

浮点常量

浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。

当使用小数形式表示时,必须包含整数部分、小数部分,或同时包含两者。当使用指数形式表示时, 必须包含小数点、指数,或同时包含两者。带符号的指数是用 e 或 E 引入的。

下面列举几个浮点常量的实例:

        3.14159       /* 合法的 */
314159E-5L    /* 合法的 */
510E          /* 非法的:不完整的指数 */
210f          /* 非法的:没有小数或指数 */
.e55          /* 非法的:缺少整数或分数 */

      

转义字符

v2-c128034b35b153db026124bf51ae80f5_b.jpg

5. 嵌入C语言 预处理

==预处理==命令可以改变程序设计环境,提高编程效率,

它们并不是 C 语言本身的组成部分,不能直接对 它们进行编译,必须在对程序进行编译之前,先对程序中这些特殊的命令进行“预处理” 。
经过预处理后,程序就不再包括预处理命令了,最后再由编译程序对==预处理==之后的源程序进行==编译==处理,得到可供执行的目标代码。

所有的预处理器命令都是以井号(#)开头。

C 语言提供的预处理功能有三种,分别为==宏定义==、文件包含和条件编译。

        //========宏定义=========================

#define MAX 10  // 宏定义
#ifdef          // 如果宏已经定义ÿ
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式C语言选择题库是一种集成的软件工具,用于帮助学习和测试嵌入式C语言知识的工具。它包含了一系列的选择题,涵盖了嵌入式C语言的各个方面,包括语法、数据类型、指针、运算符、条件语句、循环语句、函数等。 这样的选择题库对于嵌入式C语言编程学习者来说是非常有益的,因为它提供了一个系统的学习资源,帮助学习者深入理解嵌入式C语言知识。通过解答选择题,学习者可以不断巩固和加深对嵌入式C语言的理解。同时,选择题中往往会涉及一些典型的嵌入式C语言编程问题,通过解答这些问题,学习者可以加深对实际应用的了解,提升编程能力。 基于嵌入式C语言选择题库,学习者可以进行自测和自我评估。每次完成一套选择题,学习者可以查看答案和解析,了解自己的掌握情况。通过不断的练习,学习者可以发现自己的不足之处,并针对性地加强相应的知识点。同时,选择题库还可以记录学习者的答题历史和分数,供学习者进行学习进度的追踪与总结。 此外,嵌入式C语言选择题库还可以作为培训和考试的辅助工具。培训机构可以利用选择题库设置课后练习和测试,帮助学员提高学习效果。对于企业进行嵌入式C语言技能测评时,选择题库可以提供一种简单、高效、客观的评估方式。 总而言之,嵌入式C语言选择题库是一种有益于学习和测试嵌入式C语言知识的工具,它通过选择题的形式提供了一个系统的学习资源,帮助学习者巩固和加深对嵌入式C语言的理解,提升编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值