gpt4 book ai didi

c - 为什么编译器对未使用的函数发出警告?

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:00 26 4
gpt4 key购买 nike

我刚刚编写了一个示例程序来了解 C 中函数的工作原理。我在 C 中声明了一个函数并在我的程序执行期间调用它。但是我的编译器给了我一个警告说未使用的函数。我的代码如下所示:

 #include <stdlib.h>
#include <stdio.h>

int test_function(x);
int main(){

int x;
char letter[] ={"HAAA"};
char cmpre[] = {"AHD"};
int value;

for(int i=0; i<4;i++)
{
if(letter[i] == cmpre[i])
{
x=0;
}
}

int test_function(x)
{
if (x==0)
{
printf("the letters are the same");
}
return value;
}

printf("To check if the letters are the same go to the function");
test_function(x);

return 0;
}

该程序似乎执行得很好,但我在程序开头声明函数的第四行收到警告。警告是:

  Multiple markers at this line
- parameter names (without types) in function declaration [enabled by
default]
- Unused declaration of function 'test_function'

我认为我调用函数的方式不对。有人可以帮帮我吗?提前谢谢你。

最佳答案

免责声明:嵌套函数是非标准的 C,我只知道 GNU extension为了这。因此,我在这里声明的任何内容在另一个实现中很可能是不正确的。我的建议是根本不要使用它们。

您的嵌套 test_function 正在隐藏全局声明。所以你在 main 上面声明的 test_function 永远不会被调用,因为 main 里面的调用指的是嵌套函数。因此,您会收到警告。

关于c - 为什么编译器对未使用的函数发出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com