Конфликт типов при вызове метода
#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);