升级代码以在Xcode 9下构建时,我看到代码中的编译错误使用require和require_noerr:
require(length > offsetof(struct blob, cert), outLabel);
Run Code Online (Sandbox Code Playgroud)
第一个错误是:
error: implicit declaration of function 'require' is invalid in C99
我也得到了很多error: use of undeclared identifier 'outLabel'.这是在RRTransactionVerifier.m中,这是用于处理收据验证的Apple代码.
我该如何解决这些错误?
使用3.3之前的gcc版本和MS编译器,我使用以下宏:
DEBUG_WARNING(...) printf(">WARNING: "__FUNCTION__"() " __VA_ARGS__);
Run Code Online (Sandbox Code Playgroud)
使用:
DEBUG_WARNING("someFunction returned %d", ret);
Run Code Online (Sandbox Code Playgroud)
输出:
>WARNING: Class::FunctionName() someFunction returned -1
Run Code Online (Sandbox Code Playgroud)
当我们有很多系统,都发送输出时非常方便.它是一个单行宏,允许我们相应地过滤输出.小代码,大用途,快乐我.
随着__FUNCTION__(和__func__C++中)的定义发生了变化(为了使它符合标准,我相信)它也使得宏不可行.
我已经使用了一个手工构建字符串的函数,但我喜欢我的宏.
我错过了一个简单的方法来让这个简单的单行宏仍然可以在Gcc 3.3下运行吗?
:D