C++学习头文件。这个分号是怎么回事?
C++ learning header files. What's up with this semicolon?
我正在学习制作头文件。这是我的代码(三个独立的文件)
//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)
后面缺少分号
相关文章:
- 使用递归的数组的最小值.这是怎么回事
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 我使用 OpenMP 的线程越多,执行时间就越长,这是怎么回事?
- 绕道重铸瓷砖层是怎么回事
- 架 (U+67B6) 与en_US不符.UTF-8.这是怎么回事?
- R 中的算术在数字上比整数更快。这是怎么回事?
- 我的代码运行良好,但现在当尝试将其制作成模板时,我遇到了许多看似无关的错误。这是怎么回事?
- 在变量名后声明带有 () 的非内部类型与不使用变量名的行为不同。即 std::map<int,char>x(); - 这是怎么回事?
- 弄清楚这段代码是怎么回事(递归下降案例研究)
- 分配器密集和稀疏是怎么回事?
- 传递引用C++,指针的向量.这是怎么回事?
- __vector_base_common是怎么回事?
- (对象)不命名类型.怎么回事
- 变量已在 .obj 中定义;这是怎么回事?
- Sublime上的EasyClangComplete是怎么回事?
- 重复输出的类型是怎么回事,它如何区分迭代次数和 Ascii 代码?
- 标准::地图使用.这是怎么回事?核心转储?我做得不正确?
- llvm libcxx的源代码是怎么回事?
- 这一行是怎么回事: istringstream is( line );
- C++学习头文件。这个分号是怎么回事?