【发布时间】:2019-10-12 17:24:55
【问题描述】:
问题:
如果我的计算机可以更快地完成,我讨厌编写标题或声明我的函数。
确实如此。
我尝试做的事情:
我试图在main 函数之后声明一个函数foo。
但是编译器返回错误:error: ‘foo’ was not declared in this scope
代码:
#include <iostream>
//no function declaration is allowed, please.
//no other header is allowed, please.
void main() {
foo();
}
void foo() {
std::cout << "The compiler is smart now!" << std::endl;
}
如果 gcc/g++ 无法编译此 c++ 代码,我接受更改编译器。
任何回应将不胜感激。
【问题讨论】:
-
首先,C/C++ 不是一种编程语言,而是两种。一般来说,选择一种语言。
-
使用宏怎么样?不过,您应该明智地使用。
-
您可以使用旧的 (K&R) C 编译器。在 K&R C 中,编译器将假定任何使用的未声明函数返回
int并具有变量参数列表。然而,在现代 C 和 C++ 中(任何比 1990 年代早期都更新的东西)不鼓励依赖它,因为它给程序员提供了很多错误的机会(例如,使用错误的参数调用函数,并将返回值分配给不适当的类型,这两者通常都会给出未定义或错误的行为)。 -
@Peter 这更像是一个答案而不是评论;您可能希望将其格式化为答案。
-
目前,C++ 构建过程非常糟糕——对于大型代码库来说,编译时间是荒谬的。如果不必在使用之前声明函数,那将在构建过程中造成更大的灾难。所以不,你不能。只需写
void foo();- 否则支持将花费您更多时间。