我正在编写一些操作系统代码,编译器不能理解,并在我的一个函数中编写:
void kernel_getpid()
{
register unsigned int r0 asm("r0") = current_pid;
}
所以编译器抱怨:
Warning: Variable "r0" is not used
如何仅在文件中的这一点禁用警告? 我一般都希望有这些警告,所以我不想在全球范围内关闭它们,但在这一点上它变得很烦人,因为我无法做任何事情。
答案 0 :(得分:1)
从版本4.2开始但在4.6之前,您可以使用以下内容。不幸的是,它会关闭文件中前一点的警告。
#pragma GCC diagnostic ignored "-Wunused-variable"
void kernel_getpid()
{
register unsigned int r0 asm("r0") = current_pid;
}
对于4.6或更高版本,您可以推送和弹出诊断标志,因此您可以使用以下内容。
void kernel_getpid()
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
register unsigned int r0 asm("r0") = current_pid;
}
#pragma GCC diagnostic pop
您可以在GCC documentation或有关抑制GCC警告here的教程中阅读更多详细信息。