gpt4 book ai didi

c - 预处理器数据检索宏

转载 作者:行者123 更新时间:2023-11-30 14:30:38 24 4
gpt4 key购买 nike

鉴于以下结构:

struct nmslist_elem_s {
nmptr data;
struct nmslist_elem_s *next;
};
typedef struct nmslist_elem_s nmslist_elem;

地点:

typedef void* nmptr;

是否可以编写一个宏来从元素中检索数据并将其转换为正确的类型:

MACRO(type, element) 扩展为 *((type*)element->data)。例如对于 int,我需要这样的东西: *((int*)(element->data))

稍后编辑:是的,它们起作用了,我正在‘吃’一些“(”和“)”。这有效:

#define NMSLIST_DATA(type,elem) (*((type*)((elem)->data)))
#define NMSLIST_DATA_REF(type,elem) ((type*)((elem)->data))

最佳答案

#define RETRIEVE(type, element) *((type*)((element)->data))

RETRIEVE(int, nmptr)
// expands to
*((int*)((nmptr)->data))

(未经测试,但应该可以)

关于c - 预处理器数据检索宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2991000/

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