STM32之C语言基础复习

目录

一、宏定义

二、条件编译

三、extern声明

四、类型别名(typedef)

1、类型别名应用

五、结构体

1、应用举例(ST源码,使用类型别名)

六、指针

1、指针使用的二大最常见问题

七、位操作 

 1、如何给寄存器某个位赋值


一、宏定义

宏定义可以:提高效率、可读性、易改性、核心是替换

1、不带参数的宏定义

#define 标识符 字符串

标识符:宏定义的名字 (建议大写)
字符串:常数、表达式、格式串等

宏定义是一个临时的符号,是不占用内存的,属于预处理程序中代码
例如:#define PI 3.14159

2、带参数的宏定义

#define LED1(X) do{ x?\
    A:\
    B;\
}while(0)

建议使用do{.....}while(0)来构造宏定义,这样不会受到大括号、分号、运算符优先级等的影响

二、条件编译

让编译器只对满足条件的代码进行编译,不满足条件的不参与编译

 举例:头文件的条件编译结构

#ifndef _LED_H
#define _LED_H
#include "./SYSTEM/sys/sys.h"
code
#endif

三、extern声明

放在函数/变量前,表示此函数/变量在其他文件定义,以便本文件引用

extern uint16_t g_usart_rx_sta;
extern void delay_us(uint32_t nus);

g_usart_rx_sta:一个全局变量
delay_us:      一个函数

extern的作用是:告诉编译器,在这个文件中,我要调用这个变量/函数,你需要去其他的文件中找到这个变量/函数

四、类型别名(typedef

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值