typeof使用问题
extern unsigned int __unsigned_int_flags_dummy;#define test_flag(p,flag) ({ \
typeof ((p)->flags) __p = (p)->flags; \
typeof (__unsigned_int_flags_dummy) __x = 0; \
(void) (&__p == &__x); \
((p)->flags & (flag)); \
})
问题:
1、(void) (&__p == &__x); \ 这行的作用是什么。
2、看代码,貌似只有((p)->flags & (flag)); \这行才有作用,那前三行的目的是啥呢。
高手解答啊! 自己先解答下:
目的是为了检查类型是否相符,即在调用该函数时,flags的类型需要是unsigned int,如果不是,则编译器会进行报警。
页:
[1]