2013-04-30 16 views
0

我在C++下面的代碼: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; 
} 

在我的頭被稱爲「數學。 H」:

#ifndef MATH_H_INCLUDED 
#define MATH_H_INCLUDED 

int function(int number); 

#endif // MATH_H_INCLUDED 

當我嘗試編譯它,我得到了錯誤:‘功能’並不在此範圍內聲明

我在哪裏錯了?

回答

0

問題是#include <math.h>搜索標準庫的版本,不是你的。使用雙引號來代替尖括號:

#include "math.h" 
-1

錯誤說「功能」在此範圍內聲明 - 我注意到,在所有的打算,我懷疑什麼用途的意思爲「功能」 ,你用'o'拼出它作爲'fonction'。仔細檢查你在使用和聲明之間是否有一致的拼寫。

4

<math.h>是一個標準的頭文件,以及使用#include <math.h>使得它更喜歡標準頭文件的路徑在當前目錄,除非你給你的當前目錄的優先級(通過使用-I開關指定包括路徑,作爲例)。

如果您改用#include "math.h",編譯器將首先搜索當前目錄。或者,您可以將頭文件重命名爲與math.h不同的東西。

1

#include <…>: 的< ... >的意思是 「在包含路徑中搜索」。

#include "…": 的 ...... 手段「在實際路徑搜索,如果你沒有找到頭,然後在包括路徑搜索」。