extern的用法
来源:互联网 发布:ubuntu unity 编辑:程序博客网 时间:2024/04/30 09:25
extern是对源程序进行代码拆分的好东西;特别是对函数之间进行量传递的全局变量而言。
1、包含头文件的代码中使用extern将被包含文件里声明的变量引用进来。
2、包含文件与被包含文件同时使用extern。
如以下函数:MAIN.C
#include <pic.h> // 包含系统寄存器定义
__CONFIG (RC & LVPDIS & WDTDIS); // 配置字内容
bit bFlag=0; // 用来表示LED的状态的位变量,初始化为0
void interrupt ISR(void) //中断服务函数,因为它用interrupt修饰了
{
if(INTF==1) // 判断INT中断标志是否置位(为一)
{
INTF=0; // INTF置位,说明有中断产生,需要清除中断标志
bFlag=!bFlag; // 每出现一次中断,LED状态翻转,由于我们用bFlag
// 来存储LED状态,所以也就是bFlag内容取反操作。
}
}
main() // 主函数入口
{
INTE=1; // 打开INT中断
GIE=1; // 打开总中断
INTEDG=1; // 设置触发中断的条件为电平从高到低触发
TRISB0=1; // B口方向位最低位为输入,否则无法响应INT中断
TRISD=0; // D口方向设置为输出
while(1)
{
RD0=bFlag; // 把小灯状态送RD0
}
}
拆分为多个文件,MAIN.C、CONFIG.H、ISR.C、ISR.H
使用第一种办法
CONFIG.H
//定义常用配置
#ifndef _CONFIH_H_
#define _CONFIG_H_
#include "pic.h"
#define uchar unsigned char
#define uint unsigned int
#define Enabled 1
#define Disabled 0
#endif
ISR.H
//声明函数
#ifndef _ISR_H_
#define _ISR_H_
void interrupt ISR(void);
#endif
ISR.C
//定义函数及外部变量
#include "ISR.H"
#include "CONFIG.H"
bit bFlag=0; //定义外部变量
void interrupt ISR(void)
{
if(INTE==1&&INTF==1)
{
INTF=0;
bFlag=!bFlag;
}
}
MAIN.C
//主函数
#include "CONFIG.H"
#include "ISR.H"
__CONFIG(RC & WDTDIS & LVPDIS);
extern bit bFlag; //使用外部变量
void main(void)
{
INTE=1;
GIE=1;
INTEDG=1;
TRISD=0;
while(Enabled)
{
RD0=bFlag;
}
}
使用第二种办法
CONFIG.H
//定义常用配置
#ifndef _CONFIH_H_
#define _CONFIG_H_
#include "pic.h"
#define uchar unsigned char
#define uint unsigned int
#define Enabled 1
#define Disabled 0
#endif
ISR.H
//声明函数
#ifndef _ISR_H_
#define _ISR_H_
void interrupt ISR(void);
#endif
ISR.C
//定义函数及外部变量
#include "ISR.H"
#include "CONFIG.H"
extern bit bFlag=0; //定义外部变量
void interrupt ISR(void)
{
if(INTE==1&&INTF==1)
{
INTF=0;
bFlag=!bFlag;
}
}
MAIN.C
//主函数
#include "CONFIG.H"
#include "ISR.H"
__CONFIG(RC & WDTDIS & LVPDIS);
extern bit bFlag; //使用外部变量
void main(void)
{
INTE=1;
GIE=1;
INTEDG=1;
TRISD=0;
while(Enabled)
{
RD0=bFlag;
}
}
- extern "C"的用法
- extern的用法
- "extern" C的用法
- 关于extern的用法
- extern C的用法
- extern "C"的用法...
- extern的基本用法
- extern 的用法
- extern c 的用法
- extern "C"的用法
- extern的用法小结
- extern "C"的用法
- extern “c”的用法
- extern 的用法
- extern的用法
- extern的用法
- extern的用法
- extern "C"的用法
- 包的设计原则
- 使用pcap_findalldevs_ex 编程出现问题
- 成就人生的10只魔戒
- linux下清空文件内容
- C语言学习笔记<数组>
- extern的用法
- 职场电影20部
- C++ socket程序
- 详细讲解设计LOGO思维方式和方法
- Zigbee技术简介
- A*算法
- 写个内核链表,练习练习
- 虚拟继承、虚函数学习总结
- 清除xcode4的Projects 缓存