读书人

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

发布时间: 2013-03-22 09:49:50 作者: rapoo

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};

读书人网 >C语言

热点推荐