繁体   English   中英

由于C中“函数”的类型冲突,无法返回函数参数

[英]Unable to return function parameter due to conflicting types for 'function' in C

我是C语言的新手,我试图了解我的函数“ using_name”的类型有何冲突。

我也不明白为什么我必须包含一个“ *”来命名“ using_name()”函数。 因为我要在函数地址中存储一个值?

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

int using_name(), call_func(char name[20]);
char name[20];

int main ()
{
    using_name();
    call_func(name);

    return 0;
}

char* using_name()
{
        printf("What is your name: ");
        scanf("%s", name);
        printf("\n Your name is %s", name);

        return name;
}

int call_func(char name[20])
{
    printf("Hello %s", using_name(name));

}

错误:“ using_name”的类型冲突

程序开头的函数原型中的返回值和参数类型必须与以后定义函数时的实际类型相匹配。

由于using_name()定义为:

char *using_name()

您需要将早期的原型更改为:

char *using_name();
int call_func(char name[20]);

另一个解决方案是将函数定义放在程序的开头。 您只需要在定义函数之前使用它们的原型,或者在另一个编译单元中定义的函数(尽管这些原型通常放在头文件中)就可以了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM