2014-04-06 104 views
0

我有下面這段代碼在那裏我得到的常數指針參數的功能

error: expected expression before const (at line 15)

12 : int 
13 : function1(const char *arg1, const char **arg2) 
14 : { 
15 :  int i = function2(const char *arg1, const char **arg2); 
16 : } 

18 : int 
20 : function2(const char *arg1, const char **arg2) 
21 : { 
22 : } 

的錯誤是什麼恰恰意味着?

謝謝

+1

'int i = function2(arg1,arg2);' –

回答

2

刪除int i = function2(const char *arg1, const char **arg2); 隨着int i = function2(arg1,arg2);

你的變量已經定義。當在C中調用函數時,你不應該說參數類型,你必須自己傳遞參數。

2

第15行是一個錯誤。在C中,變量由稱爲標識符的單個令牌標識。

在這種情況下,變量的名稱是arg1arg2。在使用變量時使用這些標記;你不會重複所有與變量相關的類型信息。

所以,該行應爲:

int i = function2(arg1, arg2); 
2

你已經有arg1arg2到您的功能1被傳遞,所以你只需要

int i = function2(arg1, arg2); 
2
int i = function2(const char *arg1, const char **arg2); 

您正在試圖調用函數2,但你卻這樣寫一個函數聲明呼叫。調用函數時不指定參數類型。

1

刪除*並嘗試?看起來好像你試圖將arg1和arg2傳遞到函數2中,但我不認爲它們可以在函數內以這種方式引用,因爲它們沒有在那裏定義。我相信這應該只是 function2(arg1,arg2)

1
error: expected expression before const (at line 15) 

Q是什麼恰恰意味着?

A這意味着function2(之後的第一件事情應該是一個表達式。 const不是一個表達式。 arg1將是一個表達式。