如何解决msvc 相当于 __attribute__((unused)) 用于函数、参数和局部变量 功能警告参数和变量警告
问题
在 Cython 实现中,一个通用宏用于抑制未使用的警告。
# define CYTHON_UNUSED __attribute__ ((__unused__))
用于抑制有关未使用函数的警告:
CYTHON_UNUSED int func(int arg)
未使用的参数:
int func(CYTHON_UNUSED int arg)
和未使用的局部变量:
CYTHON_UNUSED int var;
由于 msvc 不存在 __attribute__ ((__unused__))
,我试图为 msvc 提出解决方案。我想出的解决方案是使用 __pragma(warning(suppress: 4100 4101 4505))
作为等价物来抑制警告。但是,这可能会抑制多个警告。以下代码:
CYTHON_UNUSED int func(int arg1,int arg2) {
int var;
return 0;
}
不仅会抑制关于未使用函数的警告,还会抑制关于参数的两个警告和关于变量的警告。
我目前的解决方案
功能警告
对于函数警告可以使用 __pragma(warning(suppress: 4505))
,除非有人编写如下内容,否则它会起作用:
static CYTHON_UNUSED int func() { return 0; }
static int func2() { return 0; }
仍然会忽略这两个警告。
参数和变量警告
对于变量和参数警告,我没有找到比强制转换为 void 更好的解决方案:
int var;
(void)var;
问题
是否有其他方法可以使用 MSVC 实现此目的? 该解决方案具有以下要求:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。