char *的Names数组位于file1.cpp
中char* Names[] = {
"name1",
"name2",
...
"nameN"
};
如何在file2.cpp中将其声明为“extern”以获取值?
答案 0 :(得分:2)
extern char *Names[];
这可能应该放在file1.h。
中答案 1 :(得分:1)
您在标题中声明为extern
:
// file1.h
extern char* Names[];
// file1.cpp
#include "file1.h"
char* Names[] = { ... };
// file2.cpp
#include "file1.h"
// You can use Names here.
没有什么可以阻止你在.cpp文件中将其声明为extern
,但这并不常见,会让读取代码的人感到困惑。这也意味着file2.cpp必须包含file1。 cpp 或重新声明数组,这很快变得无法管理。
答案 2 :(得分:0)
您可以将file2中的char指针数组声明为:
extern char*Names[];
C中的演示:
$ cat file1.c
char* Names[] = {"name1","name2","nameN" };
$ cat file2.c
#include <stdio.h>
extern char*Names[];
int main() {
printf("%s\n",Names[0]);
}
$ gcc file1.c file2.c && ./a.out
name1