问题描述
问题
在 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 (将#修改为@)