我是 C 编程的新手。我通过阅读章节和做 Herbert Schildt 的“自学 C”一书中的例子来学习。我正在尝试在 Dev C 中运行这个程序:
#include <stdio.h>
#include <stdlib.h>
main()
{
outchar('A');
outchar('B');
outchar('C');
}
outchar(char ch)
{
printf("%c", ch);
}
但是我在编译的时候遇到了这个错误:
20 1 C:\Dev-Cpp\main.c [Error] conflicting types for 'outchar'
21 1 C:\Dev-Cpp\main.c [Note] an argument type that has a default
promotion can't match an empty parameter name list declaration
15 2 C:\Dev-Cpp\main.c [Note] previous implicit declaration of 'outchar' was here
请帮我解决这个问题!
这是因为你在使用它之前没有声明 outchar
。这意味着编译器将假定它是一个返回 int
并采用未定义数量的未定义参数的函数。
在使用函数之前,您需要添加一个原型(prototype) pf:
void outchar(char); /* Prototype (declaration) of a function to be called */
int main(void)
{
...
}
void outchar(char ch)
{
...
}
请注意 main
函数的声明也与您的代码不同。它实际上是官方 C 规范的一部分,它必须返回一个 int
并且必须接受一个 void
参数或 int
和 char**
参数。
我是一名优秀的程序员,十分优秀!