扩展module_param()宏:具有单个成员或位域的结构?

时间:2012-11-23 14:42:21

标签: c gcc gnu sizeof bit-fields

  

可能重复:
  What is “:-!!” in C code?

linux内核module_param()宏扩展为几条指令,其中一些使用的数字(大小)计算如下(我只在这里粘贴相关代码):

sizeof(struct { int:- ! !(((00400|00040|00004)) < 0 || ((00400|00040|00004)) > 0777 || (((00400|00040|00004)) & 2)); })

有人可以告诉我int:- ! !(NUMBER)在做什么吗?

实际上,我有几个问题: 1)为什么用单个成员定义结构? 2)为什么不指名那个成员? (或者是成员的名字......“int”,就像类型?) 3)int:- ! !(NUMBER)表达式的含义是什么?那是一个结构域吗?一个位域? 4)上述sizeof()的含义和最终结果是什么?

非常感谢。

0 个答案:

没有答案