gpt4 book ai didi

c - 使结构定义 "Globally"可见吗?

转载 作者:行者123 更新时间:2023-11-30 18:57:49 25 4
gpt4 key购买 nike

是否可以在最初定义的文件中展开宏?我的意思是,如果我做这样的事情:

    #define DEFINE_SAMPLE_CLASS(name) \
typedef struct{ \
int example_int; \
} name; \

我希望它在我定义此宏的原始文件中扩展。这可能吗?我想要这样做的原因是因为我希望用户能够定义一堆类似模板的类,但是一旦他们定义了它们,我希望它们能够从其他文件中使用,而不必包含一堆其他头文件来获取他们想要的类型。如果这不可能或不切实际,是否有更好的方法?

编辑:澄清

我基本上想做的是允许用户“添加到”头文件中,以便他们可以声明类似于上面示例的内容:

DEFINE_SAMPLE_CLASS(Sample1)

它将扩展为:

    typedef struct{
int example_int;
} Sample1;

然后其他文件可以使用这些“全局”定义,而不必包含定义它们的所有文件。我希望用户能够定义这些类的自己的版本,同时保持它们“全局”,而不必编辑原始 header 。

最佳答案

I want it to expand in the original file I defined this macro in. Is this possible?

是的。在你的头文件中,放入

#define DEFINE_SAMPLE_CLASS(name) typedef struct name name
DEFINE_SAMPLE_CLASS(Sample1);

完成...现在 Sample1 可以用作包含头文件的任何源文件中的类型。

关于c - 使结构定义 "Globally"可见吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19461077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com