今天调试程序,想把一个长程序分成几个子函数的形式,方便调用,但是分完后,有些变量需要放到一个头文件中,于是自己编写头文件,框架是:
// 头文件
#ifndef __MAIN_H__
#define __MAIN_H__
#include <stdio.h>
#include "NUC1xx.h"
/***************
** 函数声明 **
***************/
void Init_System (void);
void Init_Uart (void);
//void UART_INT_HANDLE(uint32_t u32IntStatus);
#define RXBUFSIZE 100
extern uint16_t comRhead ;// = 0; //这里,在头文件中不要定义,只进行声明,且加上关键词extern
extern uint16_t comRtail ;// = 0;
extern uint8_t g_bWait ;// = FALSE;
extern uint32_t comRbytes;// = 0;
/*
volatile uint16_t comRhead = 0; // 这里,关键词volatile是不需要的,去掉后才能编译成功
volatile uint16_t comRtail = 0;
volatile uint8_t g_bWait = FALSE;
uint32_t comRbytes = 0;
*/
extern uint8_t comRbuf[100];
#endif
需要注意的是:变量在头文件中声明,在函数中定义,如上面的变量,可以在main.c函数中定义:
uint16_t comRhead = 0; // 这几个变量是在main.h头文件中声明的,在这里进行定义
uint16_t comRtail = 0;
uint8_t g_bWait = FALSE;
uint32_t comRbytes = 0;
uint8_t comRbuf[100];
文章评论(0条评论)
登录后参与讨论