gpt4 book ai didi

c - 为什么使用不同的指针类型?

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:32 25 4
gpt4 key购买 nike

在许多标准的开源代码中,我看到在不同的地方使用了不同的指针类型,例如:

uint32 fooHash (uint8 *str, uint32 len)

我没有得到的是以下内容:- 为什么要将 int 声明为 uint32、uint8? 所有这些都将在用户空间本身中运行,那么为什么不保留为 uint 本身呢? 以后可移植性不会成为问题吗?

  • 另外,如果你想在 32 位系统上运行开源代码,为什么要有一个指针作为uint8 *ptr?

最佳答案

指针的类型是指它包含的数据类型,而不是指针本身的大小。实际上所有指针的大小都相同。 ([*] 但请参阅下面的评论)

如果您有一个uint8*,那么指针指向一个uint8 值的数组。这与 uint32* 不同,后者指的是 uint32 值的数组。

要回答你问题的另一面......这些类型被显式化的原因是因为并非所有编译器都同意 int 的大小。这是一个便携性问题。

关于c - 为什么使用不同的指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246526/

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