当我使用如下的读写器自旋锁时,我收到一个奇怪的编译器警告,
在交流中定义
struct rwloct_t rwspinlock.
rwlock_init(&rwspinlock);
通过声明在 bc 中使用
extern struct rwloct_t rwspinlock
所以,在公元前每当我调用锁定或解锁时,例如。read_rwlock(&rwspinlock)
我收到以下警告。
warning: passing argument 1 of ‘_raw_read_lock_bh’ from incompatible pointer type
/home/dev/data/linux/linux/include/linux/rwlock_api_smp.h:20: note: expected ‘struct rwlock_t *’ but argument is of type ‘struct rwlock_t *’
然后,我更改如下, 在 ac 中定义
struct rwloct_t rwspinlock.
rwlock_init(&rwspinlock);
宣布在啊
extern struct rwloct_t rwspinlock
包括在 bc 中,
#include "a.h"
现在没有编译警告。但是,我不清楚如何!谁能解释一下,到底发生了什么?