假设我有两个C模块:第一个模块是“ file1.c”和“ file1.h”。第二个模块是“ file2.c”和“ file2.h”。第一个源文件包含一个名为sharedVariable
的变量。
file1.c
/* Includes */
#include "stdlib.h"
int sharedVariable; // Global variable
/* Some C code */
file2.c
/* Includes */
#include "stdlib.h"
extern int sharedVariable; // Global variable
/* Some C code */
我的问题是:为了使sharedVariable
在file2.c中可见,我应该添加#include "file1.h"
吗?如果是,我应该在其中放一些东西还是将其留空?如果不需要添加第一个文件的标头,则编译器如何识别sharedVariable
的来源?
编辑:
我正在寻找在两个文件之间共享变量的良好实践。其中一个是所有者,另一个是读者。我曾经将getter和setter放在所有者文件中(setter是静态函数),并将getter暴露给另一个文件。但是我对C语言中的extern很好奇。改用它是一种好习惯吗?