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

And*_*anu 0 c macros c-preprocessor

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

该宏的执行方式应类似于以下函数,但采用更通用的方式:

int *val_to_ptr(int val){
    int *r = NULL;
    r = nm_malloc(sizeof(*r));
    *r = val;
    return r;
}
Run Code Online (Sandbox Code Playgroud)

nm_malloc()故障安全 malloc 在哪里?宏的用法应该与此用法兼容:

printf("%d",*MACRO(int,5));
Run Code Online (Sandbox Code Playgroud)

有可能实现吗?

ken*_*ytm 5

如果您使用 gcc,则可以使用语句表达式

#define MACRO(type,value) ({ type* t = nm_malloc(sizeof(*t)); *t = (value); t; })
Run Code Online (Sandbox Code Playgroud)