当前位置:
文档之家› 1、位操作2、宏定义3.ifdef条件编译4.extern变量申明5.结构体
1、位操作2、宏定义3.ifdef条件编译4.extern变量申明5.结构体
6.指针
指针是一个特殊的变量,它里面存储的数值 被解释成为内存里的一个地址。
6.指针
6.指针
&操作符:取变量的地址 *操作符:对指针做解引用操作 int a=10; int *p=&a; //让指针p指向存储变量a的单元,
&a就表示是a单元的内存地址, //这个时候的*仅仅表示p是一个指针变量 printf("*p=%d a=%d",*p,a); //将打印出 *p=10,a=10,*p表示是对变量a做操作 *p=5; printf("*p=%d a=%d",*p,a); //将打印出*p=5,a=5
C语言基础知识
1、位操作 2、宏定义 3.ifdef条件编译 4.extern变量申明 5.结构体 6.指针 7.判断语句(if for switch case while 等)
1、位操作
2、宏定义
#define 标识符 字符串 #define SYSCLK_FREQ_72MHz 72000000
举例: Struct U_TYPE { Int BaudRate Int WordLength; }usart1,usart2;
定义: Struct 结构体名字 结构体变量列表 ;
5.结构体
结构体成员变量的引用方法是: 结构体变量名字.成员名
举例:usart1.BaudRate;
结构体指针变量定义也是一样的,跟其他变量 没有啥区别。 举例:struct U_TYPE *usart3; 结构体指针成员变量引用方法是通过“ ->” 符号实现,比如要访问 usart3 结构体指针指 向的结构体的成员变量 BaudRate,方法是: Usart3->BaudRate;
GPIOx->BSRR = GPIO_Pin; }
7.判断语句
if(表达式1)//表达式1条件为真 语句1 else if(表达式2)语句2 else 语句 n
7.判断语句
for(表达式1; 表达式2; 表达式 3) 语句 它的执行过程如下:先求解表达 式1。 求解表达式2,若其值为真(非 0),则执行for语句中指定的内 嵌语句,然后执行下面第3)步; 若其值为假(0),则结束循环, 转到第5)步。 求解表达式3。 转回上面第2)步继续执行。 循环结束,执行for语句下面的 一个语句。
7.判断语句
while语句的一般形式为: while(表达式) 语句
其中表达式是循环条件,语句为循环体
7.判断语句
switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1;
}
结合break使用
6.指针
指针作为函数参数:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) {
/* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Pin));
Main.c 文件
//申明变量 id 是在外部定
u8 id;//只允许一次
义的,申明可以在很多个文
main()
件中进行
{
void test(void){
id=1;
id=2;
printf("d%",id);//id=1 }
test();
printf("d%",id);//id=2
}
5.结构体
声明结构体类型: Struct 结构体名{ 成员列表; };
3.ifdef条件编译
#ifdef 标识符Βιβλιοθήκη 程序段 1#else
程序段 2
#endif
举例:
#ifdef STM32F10X_HD
大容量芯片需要的一些
变量定义
#end
4.extern变量申明
extern u16 USART_RX_STA;
u16 USART_RX_STA;
test.c 文件
extern u8 id;