gpt4 book ai didi

32 位 (void *) 通用(32 位操作系统)可以用于存储 uint64_t 数据吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:26 62 4
gpt4 key购买 nike

对于 C 中的通用数据类型,使用 void 指针是否是一种可移植的方法(假设我不想使用预处理器宏或 union 类型)?出现这个问题的原因是因为假设我想将 uint64_t 数据存储在 32 位 Linux 发行版中的空指针中(=> sizeof(void *) = 4 字节),将 uint64_t 类型转换为 (void *) 是否安全用于传递给函数然后将其类型转换回 uint64_t 以检索数据?

最佳答案

uint64_t 数据“存储在”void * 中,或将任何其他类型的数据“存储在指针中的常用方法to void"是使该指针指向 uint64_t 类型(或任何其他所需类型)的对象,并让该对象保存该值。

对于某些人来说,这似乎显而易见,但它至少每周都会在 Stack Overflow 上出现,尤其是 pthread_createpthread_join - 以及这些 API您应该让该指针指向您在回调中可能需要的所需数据。

关于32 位 (void *) 通用(32 位操作系统)可以用于存储 uint64_t 数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58259064/

62 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com