19手把手复习C语言基础一位操作宏定义条件编译类型别名_第1页
19手把手复习C语言基础一位操作宏定义条件编译类型别名_第2页
19手把手复习C语言基础一位操作宏定义条件编译类型别名_第3页
19手把手复习C语言基础一位操作宏定义条件编译类型别名_第4页
19手把手复习C语言基础一位操作宏定义条件编译类型别名_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、淘宝店铺: 技术论坛:,手把手教你学STM32,主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 开源电子网 公众平台:“正点原子” 官方网站: 联系电话ALIENTEK,手把手教你学STM32,手把手写代码学习C语言基础,淘宝店铺: 技术论坛:,C语言复习,淘宝店铺: 技术论坛:,位操作 define宏定义关键词 ifdef条件编译 typedef类型别名 extern变量申明 static关键字 _weak弱函数 结构体,C语言复习:位操作,淘宝店铺: 技术论坛:,位操作:6种位操作运算符,G

2、PIOA-CRL,C语言复习:define关键字,淘宝店铺: 技术论坛:,define宏定义关键词,define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。 常见的格式: #define 标识符 字符串 “标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。 例如: #define SYSCLK_FREQ_72MHz 72000000 定义标识符SYSCLK_FREQ_72MHz的值为72000000。,C语言复习:ifdef条件编译,淘宝店铺: 技术论坛:,ifdef条件编译,单片机程序开发过程中,经常会遇到一种情况,当满足某条件时对一组语句进行

3、编译,而当条件不满足时则编译另一组语句。条件编译命令最常见的形式为:,#ifdef 标识符 程序段1 #else 程序段2 #endif,#ifdef STM32F10X_HD 大容量芯片需要的一些变量定义 #end,例如:,C语言复习: typedef类型别名,淘宝店铺: 技术论坛:,typedef类型别名,定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。,typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typede

4、f unsigned _int64 uint64_t;,C语言复习:extern变量申明,淘宝店铺: 技术论坛:,extern变量申明,C语言中extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 这里面要注意,对于extern申明变量可以多次,但定义只有一次。,淘宝店铺: 技术论坛:,extern变量申明,u8 id;/定义只允许一次 main() id=1; printf(d%,id);/id=1 test(); printf(d%,id);/id=2 ,extern u8 id; void test(void) i

5、d=2; ,Main.c文件,test.c文件,C语言复习:extern变量申明,淘宝店铺: 技术论坛:,C语言关键字 :static,Static申明的局部变量,存储在静态存储区。 它在函数调用结束之后,不会被释放。它的值会一直保留下来。 所以可以说static申明的局部变量,具有记忆功能。 Static申明的函数作用域仅限当前.c文件,其他.c无法调用,C语言复习:static,淘宝店铺: 技术论坛:,每次调用getValue函数之后,返回值是多少?,int getValue(void) static int flag=0; flag+; return flag; ,int getValu

6、e(void) int flag=0; flag+; return flag; ,C语言复习:static,淘宝店铺: 技术论坛:,_weak弱函数,C语言复习:_weak弱函数,经测试,weak函数和重写的函数不能放在同一文件。 避免重复定义 如果用户没有重写,那么会执行弱函数,如果用户重写该函数, 那么会执行弱函数。,C语言复习:结构体,淘宝店铺: 技术论坛:,结构体:构造类型,Struct 结构体名 成员列表1; 成员变量2; 变量名列表;,在结构体申明的时候可以定义变量,也可以申明之后定义,方法是: Struct 结构体名字 结构体变量列表 ;,C语言复习:结构体,淘宝店铺: 技术论坛:,结构体作用: 同一个类型可以用数组,不同类型可以用结构体组织。 结构体可扩展性强。 举例说明: void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitType

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论