c - 使用 32 位地址获取 64 位值

标签 c

我有一个32位的地址

uint32_t ptrToValue;

我想从这个内存位置获得一个 64 位值。

如果我这样做

uint64_t value = *(uint64_t*) ptrToValue;

我收到一条警告“生成一个不同整数大小的指针”

我该如何处理?

最佳答案

使用大小合适的整数类型:intptr_t。这是一个整数类型,保证可以转换为指针并返回。

关于c - 使用 32 位地址获取 64 位值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266078/

相关文章:

C-帮助理解sscanf

c - 如何管理插入和删除内容的内存?

c - 为二维整数数组分配内存,但它应该是连续的

比较使用 fgets 和 fscanf 获取的字符串

c++ - 在 'for' 循环中递增 1 时使用 > (<) 而不是 != 是否有技术原因?

C - 分配动态数组后无法接受输入

结构体中的C char指针数组,如何

c - Posix 线程参数问题 (C)

c - Lua C API 和 lua_newuserdatauv 函数中的用户值具体是如何工作的?

c - 什么会导致 fgets() 不断等待输入?