最近遇到以下示例,它返回一个寄存器读取 __ret 但没有返回语句
#define READWORD(offset) ({ \
unsigned short __ret=0;\
__ret = readw(offset);\
__ret; \
})
谷歌上是否相同,发现像宏这样的函数可以返回值。假设最后一条语句“_ ret”等效于返回值是否安全?如果我在“ _ret”之后有另一个更改 __ret 值的语句怎么办。哪一个会被退回?