我有以下代码:

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);
}

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

我尝试过这个,但是它说类型不匹配,第二个参数是不兼容的指针类型。我了解编译器错误,但不知道为什么会发生。
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]);
  }
}

原型(prototype)的外观如何?为什么我的代码不起作用?

最佳答案

您可以使用以下任一方法:

void PrintMainParameters(int, char**);

要么:
void PrintMainParameters(int, char *[]);

或者,如果愿意,可以在原型(prototype)中插入一个虚拟参数,例如:
void PrintMainParameters(int argc, char *argv[]);

关于c - 该函数的原型(prototype)看起来如何可编译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3471403/

10-12 04:24