← SEARCHABLE ARCHIVE
C / C++ · 2026-05-10

从 C++ 基础到掌握 — 第 4 集

什么是函数?第2集

INTERACTIVE READING MODE →

该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。

在这篇文章中,我们将详细了解如何使用基本功能。

#include <iostream>

void function1(){
    std::cout << "function1!" << std::endl;
}

int main(){
    function1();
    function2();
    return 0;
}

void function2(){
    std::cout << "function2!" << std::endl;
}

该代码无法编译。 它可能会因编译器而异,但是 main.cpp:9:5: error: ‘function2’ was not declared in this scope; 您可以看到出现错误。

在我们眼里function2已经声明了,为什么计算机不知道? C语言和大多数编程语言都是从顶部读取代码。 换句话说,代码将这些命令发送给计算机。

读取 function1 的声明并在内存中创建 function1。 执行main函数,执行function1和function2。 读取 function2 的声明并在内存中创建 function2。 (稍后我们将了解名称查找失败。)

即使是人类读起来也不觉得奇怪吗?

尝试在声明 function2 之前在 main 中运行它会导致编译错误。

#include <iostream>

void function1(){
    std::cout << "function1!" << std::endl;
}

void function2(){
    std::cout << "function2!" << std::endl;
}

int main(){
    function1();
    function2();
    return 0;
}

因此,预计该代码不会导致错误。

或者,在主函数上方写一个声明,提前告诉编译器该函数的类型, 包含实际操作的实现可以写在main函数下。

#include <iostream>

void function1();
void function2();

int main(){
    function1();
    function2();
    return 0;
}

void function1(){
    std::cout << "function1!" << std::endl;
}

void function2(){
    std::cout << "function2!" << std::endl;
}