Macro

共 2 篇文章。

关于DECONST

Development

#define DE_CONST(konst, var) do { union { const void *k; void *v; } _u; _u.k = konst; var = _u.v; } while (0)

#define __UNCONST(a) ((void *)(unsigned long)(const void *)(a))

颚的神啊……

参与评论

while(0)是干吗的?

Development

今天 renzhen 同学问起为什么很多宏都定义为 do { something… } while(0),我也顺便温习了一下。

简而言之:如果希望宏表现的和函数接近,就需要这样做。

阅读全文… ( 本文约 124 字,阅读大致需要 1 分钟 )