GCC / Clang设置强制-Wpointer-to-int-cast始终记录

时间:2016-11-27 06:17:11

标签: objective-c c gcc

我的问题涉及到我现在公司之前的一些重构工作。长话短说,一个属性在某一点上有一种(我猜)NSInteger并且被改为NSNumber *。当前代码编译是因为在整个代码库中有一些(long)强制转换,但从语义上来说,这是完全不同的,因为它对指针的值进行操作;此属性的名称也不是唯一的,并且使用了数千次。

如果指针的大小不等于long的大小,那么GCC通常能够用-Wpointer-to-int-cast来捕获它,但在两个平台上都是sizeof(long) == sizeof(void*)

我的问题是,当指针类型被用作算术类型时,无论语句是否具有强制转换,GCC总是会记录警告吗?

0 个答案:

没有答案