小编Der*_* Si的帖子

结构中零长度数组的目的是什么?

当我查看Linux内核代码时,找到以下代码:

   struct thread_info {
    struct task_struct  *task;
    struct exec_domain  *exec_domain;
    unsigned long       flags;
    __u32           status;
    __u32           cpu;
    int         preempt_count;
    mm_segment_t        addr_limit;
    struct restart_block    restart_block;
    void __user     *sysenter_return;
    unsigned long           previous_esp;
    __u8            supervisor_stack[0];
};
Run Code Online (Sandbox Code Playgroud)

注意最后一个变量"supervisor_stack",它是一个零长度数组,它的用法是什么?提前致谢!

c linux

43
推荐指数
2
解决办法
3万
查看次数

"最衍生的对象"是什么意思?

C++ 03标准规定§1.8[intro.object]/4:

如果完整对象,数据成员(9.2)或数组元素属于类类型,则其类型被视为派生类最多的类,以区别于任何基类子对象的类类型; 最派生类类型的对象称为最派生对象.

任何人都可以对"最衍生的对象"有所了解吗?一些例子将非常感谢.

c++

11
推荐指数
1
解决办法
3052
查看次数

当ac/c ++语句只包含变量名时,是否有任何特定用途?

我曾经看过一段代码如下,

/** Starts a synchronized block
*
*   This macro starts a block synchronized on its argument x
*   Note that the synchronized block defines a scope (i.e. { })
*   All variables declared in it will live inside this block only
*/
#define SYNCHRONIZE_ON(x) { \
                const abcd::LockBase & __lock = \
                                abcd::MakeLock(x); __lock;

/** Ends a synchronized block */
#define END_SYNCHRONIZE   }
Run Code Online (Sandbox Code Playgroud)

SYNCHRONIZE_ONEND_SYNCHRONIZE一起用来在物体上同步.宏在它的块中SYNCHRONIZE_ON定义了一个变量____lock.

这里的问题是:句子__lock;(之后abcd::MakeLock(x);)是什么?请注意,该句子仅包含变量名称.

c++

2
推荐指数
1
解决办法
232
查看次数

标签 统计

c++ ×2

c ×1

linux ×1