繁体   English   中英

调用方法时类型冲突

[英]Conflicting types when calling a method

#include <stdio.h>
#define MAX 9

void main (int argc, char *argv[]) {

  printBoard();

}

void printBoard(void) {
  int row,col;
  row=col=0;

  for(row;row<MAX;row++)   //row navigation
    for(col;col<MAX;col++){//column navigation
      printf("r:%d,c:%d",row,col);
    }/*End Column Nav*/

  printf("\n");
}

我不确定自己在做什么错-我得到的错误是:

“警告:'printBoard'的类型冲突(默认情况下启用)注意:'printBoard'的先前隐式声明在此处”

尝试在main()上方为printBoard添加函数原型 ,例如,

void printBoard(void);

void main(...)

调用后已声明函数。

#include <stdio.h>
#define MAX 9

void printBoard(void) {
  int row,col;
  row=col=0;

  for(row;row<MAX;row++)   //row navigation
    for(col;col<MAX;col++){//column navigation
      printf("r:%d,c:%d",row,col);
    }/*End Column Nav*/

  printf("\n");
}
void main (int argc, char *argv[]) {

  printBoard();

}

这应该可以正常工作。

编辑:您应该在调用任何函数之前声明所有函数。
就像void printBoard(void);

您在声明该方法之前先对其进行调用。

通过以下方法解决问题:

1)将void printBoard(void)的定义void printBoard(void) main或

2)在main之上添加一个声明。 就是这一行: void printBoard(void);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM