gpt4 book ai didi

c - 返回指向宏中某个值的指针?

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:21 25 4
gpt4 key购买 nike

是否可以编写一个具有类型和值作为其输入参数的宏 (MACRO(type,value)),并返回一个指向保存提交的位置的有效指针

这个宏应该像下面的函数一样执行,但是以更通用的方式执行:

int *val_to_ptr(int val){
int *r = NULL;
r = nm_malloc(sizeof(*r));
*r = val;
return r;
}

其中 nm_malloc() 是故障安全 malloc。宏用法应与此用法兼容:

printf("%d",*MACRO(int,5));

有可能实现吗?

最佳答案

如果您使用的是 gcc,则可以使用 statement expressions :

#define MACRO(type,value) ({ type* t = nm_malloc(sizeof(*t)); *t = (value); t; })

关于c - 返回指向宏中某个值的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996003/

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