2014-04-06 61 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将是一个表达式。