【发布时间】:2015-01-09 08:32:11
【问题描述】:
#define TRASHIT(x) do {(x) = (void *)-1;} while (0)
我在sys/queue.h 中遇到了这个宏,然后用谷歌搜索,但没有发现任何有用的信息。
这个宏将指针x 设置为(void *)-1,但是(void *)-1 是什么意思呢?这和NULL有什么区别?
【问题讨论】:
-
周围有很多“垃圾”值,例如 0xdeadbeef 很流行。 NULL 还不够垃圾。
-
它在只执行一次代码的 do while 循环中是否有原因?
-
@HansPassant 或 0xBADC0FFEE0DDF00D 用于 64 位。
-
@awk 你可以阅读这篇关于
do while loop用法的帖子。 stackoverflow.com/questions/154136/…