首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中结构体定义时初始化有关问题

2013-03-22 
C语言中结构体定义时初始化问题原先的定义:static struct _rec_spin_lock {spinlock_tspl_lockunsigned l

C语言中结构体定义时初始化问题
原先的定义:
static struct _rec_spin_lock {
    spinlock_t  spl_lock;
    unsigned long flags;
} rec_spin_lock = {SPIN_LOCK_UNLOCKED,0};

由于内核版本的变动,SPIN_LOCK_UNLOCKED不再被定义,用新的DEFINE_SPINLOCK(x) 取代。
DEFINE_SPINLOCK(x) 的定义如下:
#define DEFINE_SPINLOCK(x)   spinlock_t x = __SPIN_LOCK_UNLOCKED(x)

请问,这种情况下,如何在定义时初始化这个结构体的值呢?
static struct _rec_spin_lock {
    spinlock_t  spl_lock;
    unsigned long flags;
} rec_spin_lock = {DEFINE_SPINLOCK,0};
这样肯定报错。
c struct
[解决办法]


static struct _rec_spin_lock {
    spinlock_t  spl_lock;
    unsigned long flags;
} rec_spin_lock = {__SPIN_LOCK_UNLOCKED(0),0};

热点排行