我从未在宏中遇到过...
。这个宏应该做什么?它计算成员从类型开始的偏移量,然后它计算从类型开始到成员字段末尾的偏移量。但是,这两个值是如何结合起来的呢?
#define bpf_ctx_range(TYPE, MEMBER) \
offsetof(TYPE, MEMBER) ... offsetofend(TYPE, MEMBER) - 1
最佳答案
它不会计算任何东西。它用于 case-range GCC 的扩展,这样你就可以写:
switch (byte_offset) {
case bpf_ctx_range(foo_struct, bar_member):
// do something...
break;
}
找出 offset
处的字节属于哪个成员。
关于c - 这个 C 宏主体中的三重点是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57905757/