【问题标题】:C gives me an error when trying to make a simple function. How can I fix it? [duplicate]尝试创建一个简单的函数时,C 给了我一个错误。我该如何解决? [复制]
【发布时间】:2020-08-31 20:26:12
【问题描述】:

我正在尝试学习 C,但是在尝试创建函数时出现错误。

这是我的代码:

int main()
{
    sayHi("Isaac", 14);
    return 0;
}

void sayHi(char name[], int age){
    printf("Hello %s! You are %d\n", name, age);
}

当我尝试运行它时,我收到一条错误消息:

警告:函数“sayHi”的隐式声明在 C99 中无效 警告:此函数声明不是原型

错误:“sayHi”的类型冲突

谁能帮帮我?

【问题讨论】:

  • 把函数放在main前面,或者把函数原型放在main前面。
  • 并建议您学习有效利用搜索。如果你只输入确切的错误,你会得到很多有用的结果。

标签: c


【解决方案1】:

当编译器检查main 时,它会注意到您引用了一个它不知道的函数。此时它不需要知道sayHi 的代码,但它确实需要知道该函数接受什么样的参数以及返回什么样的值。

这可以通过代码顶部的函数声明来完成。

void sayHi(char name[], int age);

再一次,这就是 C 此刻所需要的。这一行告诉编译器有一些名为sayHi 的函数具有指定的参数和返回值。函数的实际代码,也称为函数的定义,可以稍后出现。

【讨论】:

  • 为了完整性:指定像 void sayHi(char[], int); 这样的类型就可以了。
猜你喜欢
  • 2017-11-12
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2022-11-26
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多