ifdef/ifndef/extern/struct/static
2016-05-26 16:35
225 查看
单片机程序开发过程中,经常会遇到一种情况,当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一种语句,条件编译最常见的形式为:
extern
C语言中extern可以置于变量或则函数前,以表示变量或则函数的定义在别的文件中,提示编译器:遇到此变量或函数时在其他模块中寻找定义
这里需要注意的是:对于extern申明变量可以多次,但定义只有一次
typedef 定义一种类型的别名,而不是简单的宏定替换(有什么区别?),可以同时声明指针型的多个对象,
struct
结构体名 结构体变量
同一个类型的数据用数组,不同类型的数组使用结构体,这样以一个结构体(多参数的组合)或结构体指针作为入口参数,可以节省入口参数,而且增加、减少入口参数时,函数的声明不用再去更改。只需要定义好这样一个结构体,只需要改变结构体的成员变量即可,对原有程序没有任何影响。
static
申明的局部变量,存储在静态存储区,在函数调用结束之后,不会被释放,它的值会一直保存下来——>具有记忆功能。
函数前边加static的话一般是为了说明该函数只在文件的内部引用。
extern
C语言中extern可以置于变量或则函数前,以表示变量或则函数的定义在别的文件中,提示编译器:遇到此变量或函数时在其他模块中寻找定义
这里需要注意的是:对于extern申明变量可以多次,但定义只有一次
typedef 定义一种类型的别名,而不是简单的宏定替换(有什么区别?),可以同时声明指针型的多个对象,
struct
结构体名 结构体变量
同一个类型的数据用数组,不同类型的数组使用结构体,这样以一个结构体(多参数的组合)或结构体指针作为入口参数,可以节省入口参数,而且增加、减少入口参数时,函数的声明不用再去更改。只需要定义好这样一个结构体,只需要改变结构体的成员变量即可,对原有程序没有任何影响。
static
申明的局部变量,存储在静态存储区,在函数调用结束之后,不会被释放,它的值会一直保存下来——>具有记忆功能。
函数前边加static的话一般是为了说明该函数只在文件的内部引用。
相关文章推荐
- 进程间通信的一个例子
- ndk的一些知识
- centos6.5 安装memcached 代理服务器(Magent)
- 方法一 Java如何判断线程池所有任务是否执行完毕
- 第二阶段工作01
- Qwerty78 Trip(组合数,规律,逆元)
- Kylin - 分析数据
- 微信分享到朋友圈,分享给朋友JS代码
- WebView自适应高度
- 餐巾计划问题[网络流24题之10]
- 【Zookeeper源码五】Zookeeper 集群版建立连接过程
- c++中不区分大小写比较字符串大小
- Solr之搭建Solr6.0服务并从Mysql上导入数据
- x101个LINQ 例子
- Maven Scope
- instanceof关键字
- Cygwin make 出错 permission denied
- Dynamics CRM Unified Service Desk 技术分享
- POJ1769 Minimizing maximizer(DP + 线段树)
- lldb调试使用python脚本问题总结