Her*_*nán 90
在一个头文件(shared.h)中:
extern int this_is_global;
Run Code Online (Sandbox Code Playgroud)
在要使用此全局符号的每个文件中,包含包含extern声明的标头:
#include "shared.h"
Run Code Online (Sandbox Code Playgroud)
要避免多个链接器定义,只需在编译单元中存在一个全局符号声明(例如:shared.cpp):
/* shared.cpp */
#include "shared.h"
int this_is_global;
Run Code Online (Sandbox Code Playgroud)
jim*_*ara 22
在头文件中
头文件
#ifndef SHAREFILE_INCLUDED
#define SHAREFILE_INCLUDED
#ifdef MAIN_FILE
int global;
#else
extern int global;
#endif
#endif
Run Code Online (Sandbox Code Playgroud)
在包含您希望全局生存的文件的文件中:
#define MAIN_FILE
#include "share.h"
Run Code Online (Sandbox Code Playgroud)
在需要extern版本的其他文件中:
#include "share.h"
Run Code Online (Sandbox Code Playgroud)
nos*_*nos 15
您将声明放在头文件中,例如
extern int my_global;
Run Code Online (Sandbox Code Playgroud)
在您的一个.c文件中,您可以在全局范围内定义它.
int my_global;
Run Code Online (Sandbox Code Playgroud)
每个要访问的.c文件都my_global
包含带有extern
in 的头文件.
小智 5
如果您在 C 和 C++ 之间共享代码,请记住将以下内容添加到shared.h
文件中:
#ifdef __cplusplus
extern "C" {
#endif
extern int my_global;
/* other extern declarations ... */
#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)