我知道这是一个菜鸟问题,但我该怎么做?...
#include "stdafx.h"
#include<iostream>
int main()
{
TypeText();
}
int TypeText()
{
printf("Text");
}
当你的编译器看到对TypeText
的调用时,它还不知道TypeText
存在以及它的签名是什么。您需要声明上面的函数main
:
void TypeText();
int main()
{
TypeText();
}
void TypeText()
{
printf("Text");
}
或者,您可以将定义移动到main
以上:
void TypeText()
{
printf("Text");
}
int main()
{
TypeText();
}
请注意,TypeText
不返回任何内容,因此应具有返回类型 void
。你可能会对main
说同样的话,但如果你不明确给出 return 语句,main
实际上会return 0;
。
您可以重新排序函数并定义最后一个函数main
(在定义TypeText()
函数之后...)。
或者,您可以通过插入来声明TypeText()
函数
int TypeText(void);
在main
之前(或在您自己的头文件中)。
顺便说一句,正文中缺少return
语句TypeText
(或者您应该将其声明为返回void
)
编译文件时,不要忘记启用所有警告和调试信息。使用 GCC 意味着使用 g++ -Wall -g
进行编译。并在适当时使用调试器 ( gdb
...)。
在程序顶部包含以下代码:
void TypeText();
编译器向下读取,不知道你在说什么。如果将代码包含在编译器上方,则当它看到调用的函数时,将搜索它应该做什么。
这看起来需要预先声明来帮助C++编译器。你可以谷歌这个话题,看起来有人在这里做了一个例子。这种特殊类型的声明称为函数原型。
#include "stdafx.h"
#include<iostream>
int TypeText(); //this method is now predeclared to be recognized in main()
int main()
{
TypeText();
}
int TypeText()
{
printf("Text");
}