jlxaiyjx

导航

STM32中包含的c语言基础知识(2023/7/19)

 关键字为c语言中的应用,表示的范围根据使用的范围不同,也发生了相应的变化,比如char本来是用来表示字符的,现在也可以用来表述数字;int在c中是16位的,在32中表示32位,long和int的长度相同,longlong基本不使用。

stdint关键字的库文件给我们提供的,ST文件是以前的库文件用的命名方式,现在同样兼容

 

 define表示宏定义,在程序的一开始就定义,方便后期的数字更改

 

 typedef和宏定义一样,将长的变量换名字。

两者的区别:1.define定义的新内容在左边,typedef定义的新内容在右边;

      2.define定义完之后不需要加‘;’,而typedef需要加‘;’;

      3.可以define定义的范围更加广一点,typedef只能定义变量类型,非常局限

 

 结构体和数组的区别

1.结构体打包不一样的数据类型的变量;数组只能打包同一类型的变量

例:

数组int b [5]表示定义了一个数组,其中包含五个整数型变量

结构体struct{char x; int y; float z;}c;表示定义了一个名为c的结构体,其中包含char类型的x变量,int类型的y变量和float类型的z变量

 

2.引用方式不同

数组引用b[0],、b[1]......

结构体引用c.x、c.y......

 

ps:结构体联合typedef使用

例:typedef struct{

  char x;

  int y;

  float z;

}StructName_t;//定义StructName_t为结构体的新名字,方便后期的调用

 

StructName_t c;

StructName_t d;//快速定义结构体变量c,d,其中StructName_t为结构体的类型,c,d为结构体的名字

 

两种引用结构体的方法:

c.x='A';

c.y=66;

c.z=1.23//可以通过变量名.结构体成员数据来引用结构体

 

pc.x->x='A';

pc->y=66;

pc->z=1.23;//可以通过结构体指针名->结构体成员名来引用结构体成员

 

enum可以给定数值的范围,例:

enmun={MONDAY=1,TUESDAY=2,WEDNESDAY=3} week;//定义了枚举只能有1~3三个数字的范围

enum可以和typedef一起使用:

typedef enum{

  MONDAY=1,

  TUESDAY=2,

  WEDNESDAY=3

}  Week_t;//其中要注意,两个变量之间用,隔开;当表述的是按顺序排列的数字时,后面的数字可以被省略,如下所示

typedef enum{

  MONDAY=1,

  TUESDAY,

  WEDNESDAY

}  Week_t;

 

调用:Week_t=week;

week=MONDAY;//week=1;

week=TUESDAY;//week=2;

 

posted on 2023-07-19 21:10  蒋果是果  阅读(55)  评论(0编辑  收藏  举报