开发者社区> 问答> 正文

可以使用32位(void *)通用(32位OS)存储uint64_t数据吗?

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

展开
收起
祖安文状元 2020-01-07 14:02:02 804 0
1 条回答
写回答
取消 提交回答
  • 在uint64_t“中” 存储数据void *或在“指向void的指针”中存储任何其他类型的数据的常见方法是使该指针指向类型uint64_t(或任何其他所需类型)的对象,然后对象保留该值。

    对于某些人来说,这似乎似乎太明显了,但至少在Stack Overflow上每周都会出现一次,尤其是在使用pthread_create和pthread_join-使用这些API的情况下,您将需要使该指针指向回调中可能需要的所需数据。

    2020-01-07 14:02:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开放算力·云启未来 立即下载
2022龙蜥操作系统生态用户实践精选 立即下载
冬季实战营第二期:Linux操作系统实战入门 立即下载