gcc中有管未使用的警告大概有如下几种:
1.warning: unused variable 声明了一个变量但是该变量在函数结束为止都未使用
2.warning: unused but set variable 声明并给该变量设置了值但在函数结束为止并未使用
3.warning: unused function 定义但未使用的static函数
第三中情况一般出现在static函数定义在头文件中. 在c的static函数称之为内部函数,只能在定义该函数的文件内部使用,外部不可用,具有防止命名冲突的作用。
一般定义在.c文件中。当定义在头文件中时候,当多个.c文件引用该头文件时候 都会形成一个该函数的副本(eg: 如果该头文件被引用4次 将会形成4个该函数的副本)。只要其中一个引用该.h文件的.c文件没有调用该函数就会报 unused function警告。
消除警告:在gcc编译器可以通过给函数或变量附加 __attribute__((unused))来告诉编译器忽略未使用警告,__attribute__( )机制还有很多用法,参见参考文献2 列出常见的gcc编译器警告、参考文献1。
参考文献:
2.常见编译器警告
1.__attribute__()