为什么我从编译器获得this error关于不带0参数的函数?是因为我在调用之后声明了这个函数吗?
// HelloWorld.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!\n";
cout << "Game over!\n";
swap();
system("pause");
return 0;
}
int swap()
{
int on = 1;
int off = 0;
int temp = on;
on = off;
off = temp;
return 0;
}
答案 0 :(得分:4)
是因为我在调用函数之后声明了这个函数吗?
是
当编译器看到swap()
的调用时,它还不知道你的函数。在这种情况下,你通常会遇到“调用未声明函数”的错误,如果不是std::swap
(它有两个参数),你已经被{{拉入了你的名字空间1}}指令。
为了解决问题:将using namespace std
的定义移到 swap
之上(因为函数定义也始终是函数声明)或将其保留在放置的位置专门的声明
main
以上int swap();
。我也会摆脱main
因为你可以看到它可能对你造成的伤害大于弊,而是用using namespace std;
明确地为所有标准库类型和函数加上前缀。但这不是强制性的,也不是当前问题的根本原因。
答案 1 :(得分:1)
尝试在main之上定义你的函数或者在main之上声明。它现在从.net库调用swap