1
#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' の以前の暗黙の宣言はここにありました"

4

3 に答える 3

3

上記の関数プロトタイプを追加してみてください。printBoardmain()

void printBoard(void);

void main(...)
于 2014-03-06T00:13:03.190 に答える
2

関数を呼び出した後に関数を宣言しました。

#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); と同様です。

于 2014-03-06T00:12:57.060 に答える
1

メソッドが宣言される前に呼び出しています。

次の方法で問題を解決します。

void printBoard(void)1)上記の main またはの定義を移動する

2) 上記の宣言を追加しますmain。この行だけ:void printBoard(void);

于 2014-03-06T00:13:26.737 に答える