2014-03-06 45 views
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'的隐式声明在这里“

+1

在调用的时候,这里没有PrintBoard()范围的原型同时:main()返回int(在范围内有一个(n不可见)原型) – wildplasser

+1

[Getting“为什么?)(为什么?)(http://stackoverflow.com/questions/1549631/getting-conflicting-types-for-function-in-c-why) – WhozCraig

+0

未解答的问题是:为什么编译器接受'void main()'?出于同样的原因,这是非常错误的。 – wildplasser

回答

3

尝试printBoard上述main()例如添加function prototype

void printBoard(void); 

void main(...) 
+0

将在6分钟内接受答案。感谢您的帮助。 – user1695505

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

} 

这应该工作得很好。

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

1

您所呼叫的方法声明之前。

解决由该问题:

1)移动的void printBoard(void)上述定义主或

2)将上述main的声明。这条线:void printBoard(void);