当我尝试将函数的参数设置为默认值时发生意外错误

时间:2019-09-13 19:49:20

标签: c arrays eclipse function

我正在尝试初始化或声明默认值的函数中的值,但是当我这样做时,编译器在第3行上抛出错误 void makeGrid(char arr [8],char c,int index = 10); “在'='标记之前使用';',','或')'。我在互联网上看了一些如何将参数设置为默认值的示例,但是当我粘贴示例代码时,我也没有运行。

#include <stdio.h>
#define MAXVALUE 10

void makeGrid(char arr[8],char c ,int index =10);
void decition(int n);
char grid[8];

void makeGrid(char arr[8], char c, int index){
    if(index!=10){
        arr[index] = c;
        printf(" %c ", arr[index]);
    }else{
        for(int i =0; i <=8; i++){
            arr[i] = i+1;
            printf(" %d ", arr[i]);
            if(i==0 || i== 1 || i==3 ||i==4 ||i==6 ||i==7) printf("¦");
            if(i==2 || i== 5 || i==8) printf("\n___¦___¦___\n");
        }
    }
}

void decition(int n){
    int index = n-1;
    char newGrid[8];
    makeGrid(newGrid,'x',index);
}


int main(){
    setvbuf(stdout, NULL, _IONBF, 0);
    setvbuf(stderr, NULL, _IONBF, 0);
    int n;
    printf("\t\t\t      Tic Tac Toe Game\n");
    printf("\t\t\t Player 1 is X, Player 2 is O\n");
    makeGrid(grid, 'c', 10);
    printf("player 1 enter a number:\n");
    scanf("%d", &n);
    decition(n);


    return 0;
}

1 个答案:

答案 0 :(得分:2)

C不支持函数参数的默认值。

但是C ++支持此功能。