gpt4 book ai didi

c - 用宏在 C 中初始化 LUT?

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:11 26 4
gpt4 key购买 nike

我的程序中需要一个查找表来描述不同类型的大小。现在我明白了:

typedef struct{
APP_InterfaceType_t Type; //This is just an enum
uint8_t Size;
}APP_InterfacesLUT_t;

APP_InterfacesLUT_t MyLUT[] = {...}

现在的问题是,我想从不同的 .h 文件插入 LUT 的内容(我有我的理由)并且必须在预处理器中完成。

我在单独的 .h 文件中获得了不同的类型,当我在我的构建中包含这些 .h 文件之一时,类型(在 .h 文件中描述)和大小应该神奇地出现在 LUT 中。

所以我想知道这是否可以通过在 .h 文件中调用某种宏来实现?

例如:

REGISTERTYPE(type, size); 

编辑:定义 LUT 的模块对类型一无所知。这个想法是,当我想向程序中添加一个新类型时,我只需要包含一个头文件,而不需要在程序的其余部分编辑任何内容:)

最佳答案

是的,这是可能的,但它可能需要您使用一些多重包含和/或 ifdef 技巧。

另见 X macros ,但是当您需要将其概括为跨多个 header 工作时,它会变得更加复杂。

关于c - 用宏在 C 中初始化 LUT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19399588/

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