vscode使用#define简单宏定义时,编译结果与宏定义不符

问题遇到的现象和发生背景

使用vscode编写c程序时遇到的问题
最初是
#define ROW 3
#define COL 3
改为为
#define ROW 10
#define COL 10
后,board数组的大小为什么仍然为3x3呢

img

img

问题相关代码,请勿粘贴截图

#define ROW 10
#define COL 10

#include <stdio.h>

void init_board(char board[ROW][COL]);
void display_board(char board[ROW][COL]);

#include "game.h"

void init_board(char board[ROW][COL])
{
int i = 0;
int j = 0;
for (i = 0; i < ROW; i++)
{

    for (j = 0; j < ROW; j++)
    {
        board[i][j] = ' ';
    }
}

}

void display_board(char board[ROW][COL])
{
int i = 0;
int j = 0;
for (i = 0; i < ROW; i++)
{

    for (j = 0; j < COL; j++)
    {
        printf(" %c ", board[i][j]);
        if (j < (COL - 1))
        {
            printf("|");
        }
    }
    printf("\n");
    if (i < (ROW - 1))
    {
        for (j = 0; j < COL; j++)
        {
            printf("---");
            if (j < (COL - 1))
            {
                printf("|");
            }
        }
    }
}

}

//三子棋
#include "game.h"
//#include "game.c"

void menu()
{
printf("*****************************\n");
printf("
1.开始游戏 0.退出游戏 ***\n");
printf("********************************\n");
}

void game()
{
char board[ROW][COL] = {0};
init_board(board);
display_board(board);
}

void test()
{
menu();
int input = 0;
do
{
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
}

int main()
{
test();
return 0;
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

最初是 #define ROW 3 #define COL 3 改为为 #define ROW 10 #define COL 10后,需重新编译。修改如下,供参考:

#include <stdio.h>
#include "game.h"

#define ROW 10
#define COL 10

void init_board(char board[ROW][COL]);
void display_board(char board[ROW][COL]);

void init_board(char board[ROW][COL])
{
    int i = 0;
    int j = 0;
    for (i = 0; i < ROW; i++)
    {
        for (j = 0; j < COL; j++) //for (j = 0; j < ROW; j++)
        {
            board[i][j] = ' ';
        }
    }
}

void display_board(char board[ROW][COL])
{
    int i = 0;
    int j = 0;
    for (i = 0; i < ROW; i++)
    {
         for (j = 0; j < COL; j++)
         {
             printf(" %c ", board[i][j]);
             if (j < (COL - 1))
             {
                 printf("|");
             }
         }
         printf("\n");
         if (i < (ROW - 1))
         {
             for (j = 0; j < COL; j++)
             {
                 printf("---");
                 if (j < (COL - 1))
                 {
                     printf("|");
                 }
             }
         }
         printf("\n");
    }
}

//三子棋
#include "game.h"
//#include "game.c"

void menu()
{
    printf("*****************************\n");
    printf(" ***1.开始游戏 0.退出游戏***\n");
    printf("*****************************\n");
}

void game()
{
    char board[ROW][COL] = {0};
    init_board(board);
    display_board(board);
}

void test()
{
    menu();
    int input = 0;
    do{
       printf("请选择:>");
       scanf("%d", &input);
       switch (input)
       {
         case 1:
                game();
                break;
         case 0:
                printf("退出游戏\n");
                break;
         default:
                printf("选择错误,请重新选择\n");
                break;
       }
    } while (input);
}

int main()
{
    test();
    return 0;
}

img

img