【发布时间】:2016-05-06 09:38:48
【问题描述】:
我知道它是一个整数类型,可以在不丢失数据的情况下与指针进行转换,但我为什么要这样做呢?与void* 用于保存指针和THE_REAL_TYPE* 用于指针运算相比,整数类型有什么优势?
编辑
标记为“已经被问到”的问题没有回答这个问题。问题是如果使用intptr_t 作为void* 的一般替代品是一个好主意,而且那里的答案似乎是“不要使用 intptr_t”,所以我的问题仍然有效:What would be a good use intptr_t 的情况?
【问题讨论】:
-
尝试编写没有安全类型的操作系统的内存管理代码。
-
根据我的经验,它的主要用途是整理遗留代码,假设将 int 转换为
void *并稍后再返回是一种有效的技术 -
我发现它在这里很有用:stackoverflow.com/questions/6326534/…
-
@Baruch C 和 C++ 是 2 种不同的语言并且不兼容。当你不询问差异、相似之处、
extern "C"或类似的东西时,不要同时使用这两个标签。intptr_t的我们可能在两种语言中都不相同,如果您知道所有相关部分在两种语言中都是相同的,但事实并非如此,那么您就不必首先问这个问题。