阅读:1241回复:1
怪现象
各位兄弟姐妹们:我发现了一个怪问题。
我用的是WIN2000DDK,在DDK的源码的E:\NTDDK\src\wdm\hid\hidgame目录下,有一个hidgame.c的文件, 程序的70行是这样的: C_ASSERT( sizeof(OEMDATA[2]) == sizeof(GAMEENUM_OEM_DATA) ); 其中C_ASSERT定义在同一目录的debug.h文件23行中,定义如下: #define C_ASSERT(e) switch(0) case(e): case(0): 但是奇怪的是switch语句跟的表达式是0,是一个常量,不知如何理解,请各位指教。 |
|
|
沙发#
发布于:2001-09-20 23:54
这是一个compling time assert
也就是说,C_ASSERT(e)中 e为false (0)时,两个值就会一样, 会报错,e为true (1)时则不会,这样可以保证在编译时e为true |
|