1.unsigned int:定义 无符号数类型的 整型数据
A. 有符号数:用最高位作为符号位,“0”代表“+”,“1”代表“-”
0 011 表示 +3;1 011 表示 -3。
B.无符号数:全部二进制均代表数值,没有符号位。即第一个"0"或"1"不表示正负。
0011 表示 3;1011 表示 11。
c支持所有整形数据类型的有符号数和无符号数运算。尽管C标准并没有指定某种有符号数的表示,但是几乎所有的机器都使用二进制补码。通常,大多数数字默认都使有符号的,C也允许无符号数和有符号数之间的转换,当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C会隐含地将有符号参数强制转换为无符号数,并假设这两个数都是非负的,来执行这个运算。
有符号数用最高位作为符号位,“0”代表“+”,“1”代表“-”;其余数位用作数值位,代表数值。
1.先编译main.c文件,选择函数,右键:
2.看这个函数怎么写的(被定义处):GO TO definition of 'GPIO_init',看哪里调用了这个函数(被引用处): GO TO REFERENCE TO 'GPIO_init'
3.枚举结构体
C语言将枚举类型的变量和常量作为整数处理,在声明枚举类型时,如果没有为某枚举常量指定值时,则该枚举变量的值比前一个常量的值加1。如果第一个枚举常量为指定值,则其值默认为0。注意:枚举的值作为整数使用,但不要把整数作为枚举的值。(?)
可以使用标记和typedef定义枚举类型。
- typedef enum
- {
- GPIO_Speed_10MHz = 1,
- GPIO_Speed_2MHz,
- GPIO_Speed_50MHz
- }GPIOSpeed_TypeDef;
- //定义速度的枚举结构体
- GPIO_Speed_10MHz = 1,为枚举常量指定值为1
- GPIO_Speed_2MHz, 的值是2 ,该枚举变量的值比前一个常量的值加1,前一个常量值为1
- GPIO_Speed_50MHz,的值是3,该枚举变量的值比前一个常量的值加1,前一个常量值为2
通过查看端口寄存器(GPIOx_CRH)说明可以发现,赋值吻合。
00:输入模式(复位后的状态) 001:输出模式,最大速度10MHz 1
10:输出模式,最大速度2MHz 2
11:输出模式,最大速度50MHz 3
#define ____IO volitale
#define ____O volitale
static 表示只在本C文件里能调用,别的C文件不能调用