【发布时间】:2016-07-08 17:10:39
【问题描述】:
我正在使用 Xcode 7.3,对于在 Foundation 中定义但我在前缀文件中未定义和重新定义的宏,我收到“宏的模糊扩展”警告。我启用了模块。
复制:
- 在构建设置中将“启用模块(C 和 Objective-C)”设置为是
-
使用以下前缀文件:
#import <Foundation/Foundation.h> #undef assert #define assert(e) NSLog(@"hi") // implementation is not important -
使用以下主源文件:
int main() { assert(42); return 0; } 然后在 Xcode 中构建。
- 它在源文件中使用“assert”宏的行上显示“宏 'assert' 的模糊扩展”警告。 “扩展'assert'的这个定义”指向系统头的定义,而不是我的重新定义。 “'assert' 的其他定义”指向我的前缀文件中的定义。
禁用模块时不会出现此警告。
【问题讨论】:
标签: ios xcode macros clang compiler-warnings