c语言中头文件宏定义编译一次后为什么在之后的编译中不可修改宏的值
#ifndef __GAME_H__
#define __GAME_H__ 

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>

#define ROW 12//雷
#define COL 12
#define ROWS 10 //棋盘
#define COLS 10 
#define THUNDER 20 //雷数

void Arr_init(char mine[ROW][COL], char show[ROWS][COLS], int row, int col, int rows, int cols); //数组初始化
void Col_thu(char mine[ROW][COL], int row, int col, int thunder); //布置雷
void Print_che1(char mine[ROW][COL], int row, int col); //打印存雷棋盘
void Print_che2(char show[ROWS][COLS], int rows, int cols); //打印展示棋盘
char Find_thu(char mine[ROW][COL], char show[ROWS][COLS], int row, int col, int i); //找雷
void Num_mines(char mine[ROW][COL], char show[ROWS][COLS], int x, int y);//计算输入坐标周围的雷数
void open_show(char mine[ROW][COL], char show[ROWS][COLS], int rows, int x, int y);////计算输入坐标及周围的雷数(展开)
#endif // __GAME_H__

这段代码放在了一个头文件里面,为什么第一次编译后,修改define ROW的值都没有用了,比如我修改ROW 12为ROW10,程序还是依照未修改前的运行。

1个回答

.h文件是不单独编译的,只有.c、.cpp这样的文件修改后才会自动重新编译。
所以你要清理一下工程或者选择重新编译

slhySL
空白7777777777777 大佬,现在的问题是重新编译的时候没有使用头文件中更改过的值。有办法设置依赖关系吗,每次重新编译的.o文件会依赖于.h文件
大约一个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐