【发布时间】:2012-01-20 16:35:43
【问题描述】:
我正在针对 5.0 sdk GCC 构建一个库并在 4.2.x 设备上运行代码。
我没有在这一层使用 5.0 Objective-c 特定调用,并且该项目与 4.0+ 兼容。
我在我的库中看到了一些与我的 if 块非常奇怪的行为。
通常这应该可以工作
BYTE byteVal : 1;
byteVal = FALSE;
if (byteVal)
// ALWAYS RUNS
问题在于 if 块中的代码总是在执行。
这导致我使用 zlib gzip 功能出现问题。 4.2.x 操作系统是否使用了一些偏移量或不同的寄存器对齐方式,这与使用较新的 GCC 构建时不标准?
我不知道这里发生了什么以及为什么在 4.2.x 设备上总是失败。
有什么想法吗?
【问题讨论】:
-
真正的问题(不暗示它不正确或任何东西 - 不是专家) - 这是整个代码(我的意思是,
extern {...}类型的块中的BYTE byteVal : 1不是吗?)? -
byteVal是一个成员变量。
-
我也遇到了 zlib gzip 中的 read() 问题,我无法读取磁盘上的文件。它总是返回读取的 0 个字节。
-
所有这些代码都适用于 iOS 5.0 设备
-
你能发布实际的结构定义和你使用它的相关真实代码吗?你打开所有警告了吗?