--------------------------------------------------------------------------------------------------------------------
a.c
#include <a.h>
#include <global.h>
static int static_global_v; // 静态全局变量
static void static_func(void); // 静态函数声明
void func(void) // 函数(默认具有文件作用域)
{
}
static void static_func(void) // 静态函数定义
{
}
-------------------------------------------------------------------------------------------------------------------
a.h
#ifndef A_H_
#define A_H_
void func(void); // 函数声明
#endif
---------------------------------------------------------------------------------------------------------------------
global.c
#include <a.h>
#include <global.h>
void fun2(void)
{
}
#define
------------------------------------------------------------------------------------------------------------------------
global.h (所有全局变量都放在这个文件里声明/定义)
#ifndef GLOBAL_H_
#define GLOBAL_H_
#include "a.h"
void
fun2(
void
);
#ifdef GLOBAL
#define GLOBLEVAR
#else
#define GLOBLEVAR extern
#endif
GLOBLEVAR int global_v; // 外部链接型全局变量(这个变量虽然在头文件中定义,但在所有文件中只会被定义一次,其它都是外部引用声明)
#endif
----------------------------------------------------------------------------------------------------------------------------------