c#小笔记

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”代表“-”;其余数位用作数值位,代表数值。


2.查看函数来源、去向

1.先编译main.c文件,选择函数,右键:

2.看这个函数怎么写的(被定义处):GO TO definition of 'GPIO_init',看哪里调用了这个函数(被引用处): GO TO REFERENCE TO 'GPIO_init'



3.枚举结构体

C语言将枚举类型的变量和常量作为整数处理,在声明枚举类型时,如果没有为某枚举常量指定值时,则该枚举变量的值比前一个常量的值加1。如果第一个枚举常量为指定值,则其值默认为0。注意:枚举的值作为整数使用,但不要把整数作为枚举的值。(?)

可以使用标记和typedef定义枚举类型。

[csharp]  view plain  copy
  1. typedef enum        
  2. {   
  3.   GPIO_Speed_10MHz = 1,          
  4.   GPIO_Speed_2MHz,                         
  5.   GPIO_Speed_50MHz  
  6. }GPIOSpeed_TypeDef;  
  7. //定义速度的枚举结构体   
  8. GPIO_Speed_10MHz = 1,为枚举常量指定值为1  
  9. GPIO_Speed_2MHz, 的值是2 ,该枚举变量的值比前一个常量的值加1,前一个常量值为1  
  10. GPIO_Speed_50MHz,的值是3,该枚举变量的值比前一个常量的值加1,前一个常量值为2  

通过查看端口寄存器(GPIOx_CRH)说明可以发现,赋值吻合。

00:输入模式(复位后的状态)  0
01:输出模式,最大速度10MHz 1
10:输出模式,最大速度2MHz   2
11:输出模式,最大速度50MHz 3


#define ____IO volitale

#define ____O volitale


static 表示只在本C文件里能调用,别的C文件不能调用


猜你喜欢

转载自blog.csdn.net/luoyir1997/article/details/79986231