c-*(void **)&(int [2]){0,PAGE_SIZE}; 含义?

拉里

语境

阅读一些内核代码。

问题

我无法理解这条线的含义

*(void **) &(int[2]){0,PAGE_SIZE};

还有,这意味着什么

{0,PAGE_SIZE}

对我来说,它看起来不像是带有逗号的函数。

此代码可能会发生什么?我不明白这里的间接含义。

是函数还是强制转换?括号部分是什么意思?对我来说似乎如此令人费解,但绝对有其含义。

亚历山大·C
(int[2]) { 0, PAGE_SIZE }

是一个表达式(称为复合文字),其值是一个2的数组int该数组的地址被获取,转换为void **并取消引用。

最终结果是将数组内容重新解释为指向void的指针。

请注意,您可以采用复合文字的地址,因为它们是左值。参见例如。这个问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++中void * volatile *的含义是什么

来自分类Dev

@property (readonly) void *data; 的含义 在目标 c

来自分类Dev

(void(*)(void *))的含义

来自分类Dev

int icon在C ++(Visual Studio)中的含义

来自分类Dev

(void *)-1的含义

来自分类Dev

(void *)-1的含义

来自分类Dev

c中int(* pt)[5]的含义是什么

来自分类Dev

[]的C ++含义

来自分类Dev

[]的C ++含义

来自分类Dev

含义:void * _Nullable(* _Nonnull)(void * _Nullable)

来自分类Dev

有人可以解释一下malloc(20 * c |-(20 *(unsigned __int64)(unsigned int)c >> 32!= 0)的含义)

来自分类Dev

int to void *-避免使用C样式转换?

来自分类Dev

C / C ++将void *强制转换为int(*())(int,...);

来自分类Dev

无法将参数'2'的'int(Scheduler :: *)(int,void *)'转换为'int(*)(int,void *)'到'bool irq_InstallISR(int,int(*)(int,void *),无效*)'

来自分类Dev

int a [] {(functioncall(a1,a2),0)...}; (void(a)); 这个语法有什么用?

来自分类Dev

尝试创建线程时从'void *(*)(int(*)[2])'无效转换为'void *(*)(void *)

来自分类Dev

C中y = x ++ <= 2的含义是什么?

来自分类Dev

C中y = x ++ <= 2的含义是什么?

来自分类Dev

该代码的含义([1、2、3] || 0)[0]

来自分类Dev

该代码的含义([1、2、3] || 0)[0]

来自分类Dev

如何从C向C#传递void *(指向double或int)

来自分类Dev

函数签名中typedef void FOO与#define FOO void的含义

来自分类Dev

Python2:'!../'的含义

来自分类Dev

C ++中后缀增量运算符中int变量的含义

来自分类常见问题

int(*)(int *)= 5(或任何整数值)的含义

来自分类Dev

C代码段的含义

来自分类Dev

C ++的含义| =和&=

来自分类Dev

宏在C ++中的含义

来自分类Dev

*(volatile unsigned int *) 0x00 = 0x00 的含义;

Related 相关文章

  1. 1

    C ++中void * volatile *的含义是什么

  2. 2

    @property (readonly) void *data; 的含义 在目标 c

  3. 3

    (void(*)(void *))的含义

  4. 4

    int icon在C ++(Visual Studio)中的含义

  5. 5

    (void *)-1的含义

  6. 6

    (void *)-1的含义

  7. 7

    c中int(* pt)[5]的含义是什么

  8. 8

    []的C ++含义

  9. 9

    []的C ++含义

  10. 10

    含义:void * _Nullable(* _Nonnull)(void * _Nullable)

  11. 11

    有人可以解释一下malloc(20 * c |-(20 *(unsigned __int64)(unsigned int)c >> 32!= 0)的含义)

  12. 12

    int to void *-避免使用C样式转换?

  13. 13

    C / C ++将void *强制转换为int(*())(int,...);

  14. 14

    无法将参数'2'的'int(Scheduler :: *)(int,void *)'转换为'int(*)(int,void *)'到'bool irq_InstallISR(int,int(*)(int,void *),无效*)'

  15. 15

    int a [] {(functioncall(a1,a2),0)...}; (void(a)); 这个语法有什么用?

  16. 16

    尝试创建线程时从'void *(*)(int(*)[2])'无效转换为'void *(*)(void *)

  17. 17

    C中y = x ++ <= 2的含义是什么?

  18. 18

    C中y = x ++ <= 2的含义是什么?

  19. 19

    该代码的含义([1、2、3] || 0)[0]

  20. 20

    该代码的含义([1、2、3] || 0)[0]

  21. 21

    如何从C向C#传递void *(指向double或int)

  22. 22

    函数签名中typedef void FOO与#define FOO void的含义

  23. 23

    Python2:'!../'的含义

  24. 24

    C ++中后缀增量运算符中int变量的含义

  25. 25

    int(*)(int *)= 5(或任何整数值)的含义

  26. 26

    C代码段的含义

  27. 27

    C ++的含义| =和&=

  28. 28

    宏在C ++中的含义

  29. 29

    *(volatile unsigned int *) 0x00 = 0x00 的含义;

热门标签

归档