在 64 位上定义 32 位

define 32bit on 64bit

我这里有一些 C 文件(你不需要知道里面有什么),它处于稳定的 32 位模式(使用 gcc -m32),现在我想做更多的 64 位(gcc -m64)它有一些小错误\

“从不同大小的整数转换为指针”

哦不。仔细检查您的代码并删除指针和整数之间的所有转换,这些转换不会从 intptr_tuintptr_tptrdiff_t 转换或转换为 ptrdiff_t。如果您在指针和 other-sized 整数之间进行转换,无论您使用多少层间接寻址,它都不会起作用。

完成后,出于 I/O 的原因,您仍然需要 certain-sized 个整数,请使用 stdint.h:

中的定义

int16_t: 有符号 16 位整数
uint16_t: 无符号 16 位整数
int32_t: 带符号的 32 位整数
uint32_t: 无符号 32 位整数
int64_t: 带符号的 64 位整数
uint64_t: 无符号 64 位整数

保持 size_t 数组大小,不要在 on-disk 格式中使用它。它改变了。