2017-02-24 80 views
0

我正在经历libmysql.c。我的源代码来翻过INT ARGC MY_ATTRIBUTE((未使用))指

int STDCALL mysql_server_init(int argc MY_ATTRIBUTE((unused)), 
       char **argv MY_ATTRIBUTE((unused)), 
       char **groups MY_ATTRIBUTE((unused))) 

不ARGC MY_ATTRIBUTE意味着什么。什么做就意味着要使用int ARGC MY_ATTRIBUTE( )如果我是正确的int是返回类型MY_ATTRIBUTE是功能name.I想知道ARGC

回答

0

GCC C Extensions:

未使用

该属性,连接到一个变量,表示该变量 是指可能不会被使用。 GCC不会产生 这个变量的警告。

这意味着,当不使用变量时,编译器gcc不会给出关于该变量的警告。

例子:

int main(void) 
{ 
    int a; // warning as variable a not used 
    int b __attribute__((unused)); 
} 

gcc -Wall或者干脆gcc -Wunused-variable编译这个程序,你会得到:

main.c: In function ‘main’: 
main.c:7:6: warning: unused variable ‘a’ [-Wunused-variable] 
int a; 
    ^

现在int argc MY_ATTRIBUTE((unused))关于:

argc是一个整数参数如果编译器在函数STDCALL mysql_server_init定义中不使用,则不会发出警告。

0

的目的,这可能是一个宏,this版本更加清晰:

int STDCALL mysql_server_init(int argc __attribute__((unused)), 
        char **argv __attribute__((unused)), 
        char **groups __attribute__((unused))) 

钍只是意味着,我不使用这个论点。