这个函数的原型如何看起来像是可编译的?

cit*_*nas 0 c prototype compiler-errors

我有这个代码:

void PrintMainParameters(int n, char* array[])
{
  int i = 0;
  for(i = 0; i < n; i++)
  {
   printf("%s \n", array[i]);
  }
}

int main(int argc, char* argv[] )
{
  PrintMainParameters(argc, argv);
}
Run Code Online (Sandbox Code Playgroud)

工作良好.现在我想将PrintMainParameters作为原型编写,以便稍后在源文件中声明该函数.

我试过这个,但它说类型不匹配,第二个参数是一个不兼容的指针类型.我理解编译器错误,但我不知道它为什么会发生.

void PrintMainParameters(int, char*);


int main(int argc, char* argv[] )
{
 PrintMainParameters(argc, argv);
}

void PrintMainParameters(int n, char* array[])
{
  int i = 0;
  for(i = 0; i < n; i++)
  {
   printf("%s \n", array[i]);
  }
}
Run Code Online (Sandbox Code Playgroud)

原型必须如何?为什么我的代码不起作用?

Tho*_*mas 6

你的函数需要一组char指针.您的原型声明它采用单个char指针.正确的原型如下所示:

void PrintMainParameters(int, char*[]);
Run Code Online (Sandbox Code Playgroud)