*(int *)(buffer)是什么意思?

沙伊克

在我正在阅读的C ++代码中,发现了以下内容。谁能帮助我了解以下陈述的作用?

char buffer[4096];
// some code
int size = *(int*)(buffer);
伦丁

TL; DR:此代码不好,请忽略它并继续前进。


(buffer) 此括号表示程序员对自己的编程能力没有把握。

由于buffer是字符数组,因此单独使用标识符buffer可为您提供第一个元素的char指针指针。

(int*)这是强制转换,将char指针转换为int指针。

*接受该整数指针的内容,结果存储在integer中size

请注意,此代码是完全不安全的。许多指针转换会调用定义不明确的行为。可能存在对齐问题。可能存在指针别名问题(Google“严格别名规则”)。此特定代码也是依赖于字节性的,这意味着它要求字符数组的内容具有给定的字节顺序。

总体而言,在执行此类操作时,使用诸如intchar(可能是带符号)的带符号类型没有任何意义特别是,该char类型非常有问题,因为它具有实现定义的签名,应避免使用。使用unsigned charuint8_t代替。

稍差一些的坏代码看起来像这样:

#include <stdint.h>

uint8_t buffer[4096];
// some code
uint32_t size = *(uint32_t*)buffer;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

*(int *)a是什么意思?

来自分类Dev

这个语法*((unsigned int *)(buffer + i))在C中是什么意思

来自分类Dev

(int [] [])的方法是什么意思?

来自分类Dev

“ this [int index]”是什么意思?

来自分类Dev

*(int *)在C ++中是什么意思?

来自分类Dev

(int *)&var是什么意思?

来自分类Dev

*(int *)变量=值是什么意思?

来自分类Dev

使用(int [] [])的方法是什么意思?

来自分类Dev

*((int *)(&val)+1)是什么意思

来自分类Dev

类型((Int)-> Int)在Swift中是什么意思?

来自分类Dev

c中的`int(*)(int)`关于类型是什么意思?

来自分类Dev

typedef int function(void *)是什么意思?

来自分类Dev

C ++中的int(expr)是什么意思?

来自分类Dev

这行代码是什么意思*((int *)(0))= 1 ;?

来自分类Dev

“ static int function(...)__acquires(..)__releases(...){”是什么意思?

来自分类Dev

Stack(int = 10),此语法是什么意思(C ++)?

来自分类Dev

`int const a [5]`到底是什么意思?

来自分类Dev

“ B(int b = 0):b(b){}”是什么意思?

来自分类Dev

“ int j =(strlen)(str)”是什么意思?

来自分类Dev

char(*)[int]在C ++中是什么意思?

来自分类Dev

int bit =(weight [i]&s)是什么意思

来自分类Dev

“ typedef void *(* Something)(unsigned int)”是什么意思

来自分类Dev

此声明是什么意思“ int(* ptr [3])();”?

来自分类Dev

C# int i = +1 是什么意思?

来自分类Dev

这个函数声明中 -> List[int] 是什么意思?

来自分类Dev

静态int(* const array [SIZE_ARRAY] ...)(int a)= {[SOMETHING] = something}`在C中是什么意思?

来自分类Dev

说“ int”从不等于“ int”类型的“ null”是什么意思?

来自分类Dev

“错误:从 'int' 到 'int (*)[8]' [-fpermissive] 的无效转换”是什么意思?

来自分类Dev

arr++ 在函数“int f(int arr[])”中是什么意思?

Related 相关文章

  1. 1

    *(int *)a是什么意思?

  2. 2

    这个语法*((unsigned int *)(buffer + i))在C中是什么意思

  3. 3

    (int [] [])的方法是什么意思?

  4. 4

    “ this [int index]”是什么意思?

  5. 5

    *(int *)在C ++中是什么意思?

  6. 6

    (int *)&var是什么意思?

  7. 7

    *(int *)变量=值是什么意思?

  8. 8

    使用(int [] [])的方法是什么意思?

  9. 9

    *((int *)(&val)+1)是什么意思

  10. 10

    类型((Int)-> Int)在Swift中是什么意思?

  11. 11

    c中的`int(*)(int)`关于类型是什么意思?

  12. 12

    typedef int function(void *)是什么意思?

  13. 13

    C ++中的int(expr)是什么意思?

  14. 14

    这行代码是什么意思*((int *)(0))= 1 ;?

  15. 15

    “ static int function(...)__acquires(..)__releases(...){”是什么意思?

  16. 16

    Stack(int = 10),此语法是什么意思(C ++)?

  17. 17

    `int const a [5]`到底是什么意思?

  18. 18

    “ B(int b = 0):b(b){}”是什么意思?

  19. 19

    “ int j =(strlen)(str)”是什么意思?

  20. 20

    char(*)[int]在C ++中是什么意思?

  21. 21

    int bit =(weight [i]&s)是什么意思

  22. 22

    “ typedef void *(* Something)(unsigned int)”是什么意思

  23. 23

    此声明是什么意思“ int(* ptr [3])();”?

  24. 24

    C# int i = +1 是什么意思?

  25. 25

    这个函数声明中 -> List[int] 是什么意思?

  26. 26

    静态int(* const array [SIZE_ARRAY] ...)(int a)= {[SOMETHING] = something}`在C中是什么意思?

  27. 27

    说“ int”从不等于“ int”类型的“ null”是什么意思?

  28. 28

    “错误:从 'int' 到 'int (*)[8]' [-fpermissive] 的无效转换”是什么意思?

  29. 29

    arr++ 在函数“int f(int arr[])”中是什么意思?

热门标签

归档