Конфликт типов при вызове метода

#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 "было здесь"

3 ответа

Решение

Попробуйте добавить прототип функции для printBoard выше main() например,

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) выше основного или

2) добавление декларации выше main, Просто эта строка: void printBoard(void);

Другие вопросы по тегам