如何从main运行函数/类?

时间:2013-12-20 19:15:21

标签: c++ function class main

我知道这是一个noobie问题,但我该怎么做?...

#include "stdafx.h"
#include<iostream>


int main()
{
    TypeText();
}

int TypeText()
{
    printf("Text");
}

4 个答案:

答案 0 :(得分:3)

当编译器看到对TypeText的调用时,它还不知道TypeText存在以及它的签名是什么。您需要声明main上面的函数:

void TypeText();

int main()
{
    TypeText();
}

void TypeText()
{
    printf("Text");
}

或者,您可以将定义移到main上面:

void TypeText()
{
    printf("Text");
}

int main()
{
    TypeText();
}

请注意,TypeText不返回任何内容,因此应返回类型void。您可以对main说同样的内容,但如果您没有明确提供退货声明,则main实际上会return 0;

答案 1 :(得分:0)

您可以重新排序函数并定义main last(在定义TypeText()函数后...)。

或者您可以通过插入

来声明TypeText()功能
int TypeText(void);

main之前(或在您自己的头文件中)。

BTW,return正文中缺少TypeText语句(或者您应该将其声明为返回void

编译文件时,不要忘记启用所有警告和调试信息。使用GCC意味着使用g++ -Wall -g进行编译。并在适当的时候使用您的调试器(gdb ...)。

答案 2 :(得分:0)

这看起来需要预先声明才能帮助C ++编译器。你可以谷歌这个话题,看起来有人做了一个例子here。这种特殊类型的声明称为function prototype

#include "stdafx.h"
#include<iostream>


int TypeText(); //this method is now predeclared to be recognized in main()

int main()
{
    TypeText();
}

int TypeText()
{
    printf("Text");
}

答案 3 :(得分:0)

在程序顶部包含以下代码:

void TypeText();

编译器向下读,不知道你在说什么。如果在编译器上面包含代码,当它看到被调用的函数将搜索它应该做什么时。