struct nmma7660_data *data;
指向结构体是这样的:
data->nmma7660_client = client;
mutex_init(&data->value_mutex);
关于这些结构体的定义是这样的
struct nmma7660_data {
struct i2c_client *nmma7660_client;
struct mutex value_mutex;
};
为什么上面那个直接用data指向nmma7660_client ,而另一个用&data指向value_mutex
C语言指向这个结构体为什么要加&
答案:3 悬赏:0 手机版
解决时间 2021-04-06 11:39
- 提问者网友:不爱我么
- 2021-04-06 02:53
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-04-06 03:18
这个 & 是 取的 data->value_mutex 的 地址, 即 data 中的 value_mutex 的地址,
因为 C 语言中 -> 比 & 优先级高.
因为 C 语言中 -> 比 & 优先级高.
全部回答
- 1楼网友:英雄的欲望
- 2021-04-06 04:29
&c[1]表示是存放x这个变量的 内存地址
就好比 假如有一个叫x的人 这个人可以是任何人 我们就说他是一个人的变量 那么 &x表示的就是这个人的住址
明白
- 2楼网友:千杯敬自由
- 2021-04-06 04:04
你哪只眼睛 看见data指向nmma7660_client 类型结构体变量了?
struct nmma7660_data *data; 这只是定义了一个 指向结构体变量的指针 但是还没让他具体指向那个变量 他是个野指针
你贴的代码不全 肯定能找到类似
struct nmma7660_data xxx;
struct nmma7660_data *data;
data = &xxx;
data->nmma7660_client = client;// 相当于 xxx.nmma7660_client = client;
另外
mutex_init(&data->value_mutex); //不是 &data指向value_mutex
而是 data指向xxx导致可以用data访问 xxx的成员value_mutex, 然后再得到这个成员的地址
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯