C++学习头文件。这个分号是怎么回事?

C++ learning header files. What's up with this semicolon?

本文关键字:怎么回事 学习 文件 C++      更新时间:2023-10-16

我正在学习制作头文件。这是我的代码(三个独立的文件)

//Main.cpp
#include <iostream>
#include "functions.h"
;
using namespace std;
int main()
{
    cout << multiply(3, 4) << endl;
    return 0;
}
//functions.cpp
int multiply(int x, int y)
{
    return x * y;
}
//functions.h
#ifndef FUNCTIONS_H_
#define FUNCTIONS_H_
int multiply(int x, int y)
#endif

代码编译并运行,但困扰我的部分是在Main.cpp中。在"functions。h"下面和"using namespace"上面有一个分号。

我把它放在那里,因为visual studio说它期待一个,但我不知道为什么。我没有在教程中看到它。

当然,它有效。但我不喜欢不知道为什么它在那里,它不应该在那里。

因为function .h中少了一个分号

int multiply(int x, int y);
                          ^^^^ here

c++用分号分隔语句。

#include directive导致"functions.h"文件的内容与文件的内容一起发送给编译器。这样做的结果是,由头文件中的错误引起的编译错误通常会在包含它们的代码中报告。(感谢philip)

因为C预处理器对C的语法一无所知——你可以用它把电子邮件、汇编源文件或HTML放在一起,如果你喜欢的话,它只是把所有的源文件放在一个长文件中供编译器实际编译。

在"functions.h"中int multiply(int x, int y)后面缺少分号