定义头文件时,C++变量重复定义

2025-04-30 13:03:28
推荐回答(2个)
回答1:

1、记住,尽量不要在.c/.cpp文件中定义变量,而只能是声明变量。即将如下两句放在windowinit.cpp中。
/* variables */
int width = 640;
int height = 480;
2、在windowinit.h中声明这两个变量:
/* variables */
extern int width;
extern int height;
然后就不会重定义了。你声明在头文件中,头文件在预编译的时候,是会被展开在.cpp文件中的,这样两个cpp文件都定义了这两个变量,肯定会提示你重定义了。

回答2:

头文件里不要定义变量。
main.cpp和windowInit.cpp包含.h时都定义了这2个变量。
虽然有#ifndef保护宏,但这种保护宏只是防止同一个CPP里多次包含同一个h。