c - 没有类型的外部

标签 c extern

如果extern的语法是

extern <type> <name>;

如果我有一个未命名的一次性结构,我该如何extern:

struct {
    char **plymouthThemes;
    char *plymouthTheme;
} global;

我试过了

extern global;

没有任何类型,它不起作用。

或者,我是否必须为结构命名?

最佳答案

您需要命名结构并将其放入 .h 文件中,或者在每个使用全局的源文件中手动包含定义。像这样

///glob.h
    struct GlobalStruct
    {
       ///char** ...
       ///
    };

///glob.cpp
   #include "glob.h"
   struct GlobalStruct global; 

///someOtherFile.cpp
#include "glob.h"

extern struct GlobalStruct global; 

关于c - 没有类型的外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4123340/

相关文章:

c - 如何查找矩阵相乘的 C 程序中的错误

c - 用于列出存储桶的 libs3 不返回所有存储桶内容

c - 在 'header.h' 文件中声明了一个自引用结构并试图在 'main.c' 中定义它,这会导致错误

c - 在动态库中设置共享变量

c - 获取当前进程上下文的实际可执行路径 - Linux kernel

C:来自两个字符串的相同字符

c++ - 寻找 OpenCV 教程

c++ - 从另一个文件访问 C++ 中的 extern "C"变量

C extern struct指针动态分配

c++ - c++中extern的使用