c - 长时间插入指针

标签 c

这种转换会失败吗?何时?

long x=-1;
long y = (long)(void*)x;
assert(x==y);

更具体地说,如何在编译时检测上述强制转换是否正确。

最佳答案

一种更可移植的方式(在C99标准变体上)是#include <stdint.h>,然后将指针转换为intptr_t(并返回)。保证此整数类型为指针的大小。

关于c - 长时间插入指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8068487/

相关文章:

c - asm ("nop");作品?

c - 通过 char 指针输出不正确

编译器/链接错误: Freedup

android - 在 Chromuim (Android) 中使用 Clang 为 elf_utils 编译嵌套函数

c - $n( Bison 的规则)返回上一个标记读取的值

c - 理解为什么 execvp 在 `execv` 失败的地方起作用

c - 查询 MAP_PRIVATE

c - 为什么 mex 代码运行得比 matlab 代码慢

c - 使用openmp时运行的线程数不一致

c - C 中的 %u 格式说明符