如何从主运行函数/类

How to run functions/classes from main?

本文关键字:函数 运行      更新时间:2023-10-16

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

#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");
}