将原始数据类型转换为空隙指针类型

Converting primitive data type to void pointer type

本文关键字:指针 类型 原始数据 类型转换      更新时间:2023-10-16

我在这里阅读有关pthreads的内容。在一个示例中,他们给了此源代码。

创建线程时,它们正在传递长期类型,类型为void *类型为函数!

在功能中,他们会收到此值并反向铸造以获得长值。

Q1:是否允许将指针类型转换为原始数据类型和Vice-Verca(在C和C 中)?

Q2。如果是这样,这样做是一件好事吗?他们不应该创建一个指向这种长类型的指针,然后键入将此指针施加为void *并将其传递到函数。

将原始类型转换为指针类型的想法我发现很困惑?从任何指针类型转换为可理解的void*,但是如何将原始数据类型存储在void*类型中?是否有可能在特定的系统大小上的原始类型的大小可能更大的大小分配给指针类型?

q1:是的,但是它是定义的(=平台取决于)是否有效。一个更安全的版本将使用uintptr_t而不是long

Q2:这绝对是糟糕的风格。通过分配long并通过地址来正确执行绩效惩罚。

相关文章: