我在C ++中获得了以下代码:
in main():
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
cout << function(1) << endl;
return 0;
}
在我的源代码文件中:
#include <math.h>
int function(int number)
{
int value(number + 2);
return value;
}
在我的标题“math.h”中:
#ifndef MATH_H_INCLUDED
#define MATH_H_INCLUDED
int function(int number);
#endif // MATH_H_INCLUDED
当我尝试编译它时,我收到错误:“函数”未在此范围内声明
我哪里错了?
答案 0 :(得分:4)
<math.h>
是一个标准的头文件,#include <math.h>
的使用使它更喜欢当前目录上的标准头文件路径,除非你给当前目录优先权(使用{{1} }}切换以指定包含路径,作为示例)。
如果使用-I
,编译器将首先搜索当前目录。或者,您可以将头文件重命名为与#include "math.h"
不同的内容。
答案 1 :(得分:1)
#include <…>
:
&lt; ... &gt; 表示“在包含路径中搜索”。
#include "…"
:
“ ... ”表示“在实际路径中搜索,如果找不到标题,则在包含路径中搜索”。
答案 2 :(得分:0)
问题是#include <math.h>
搜索标准库的版本,而不是你的版本。使用双引号代替尖括号:
#include "math.h"
答案 3 :(得分:-1)
错误说“功能”未在此范围内声明 - 我注意到在我怀疑你打算将其称为“功能”的所有用途中,你将其拼写为带有“o”的“fonction”。仔细检查您在使用和声明之间是否有一致的拼写。