。h头文件如何写
。h头文件怎么写
书上说变量的声明要写在点h文件中,定义写在cpp文件,可以避免被多个文件包含发生重定义错误。
但是不知道变量的声明是个什么东西,int a;算声明还是定义呢?
我用2个cpp包含下面这个点h文件
上面的int a,int b =1;和static int c不一样是定义吗?
把变量声明写在.h文件 到底要怎么写呢?
------解决方案--------------------
int a;算声明还是定义呢? --》定义,因为定义会分配内存。
上面的int a,int b =1;和static int c不一样是定义吗? --》都是定义,作用域也一样。
声明用extern.如extern int a;
然后在你使用a的.cpp or .c中define它。
------解决方案--------------------
extern int a;
extern int b;
要避免多个文件互相包含,要用#ifndef.. #define ..#endif
------解决方案--------------------
static int c; 虽然是定义, 但是它是内部链接的, 可以写在 .h 里.
书上说变量的声明要写在点h文件中,定义写在cpp文件,可以避免被多个文件包含发生重定义错误。
但是不知道变量的声明是个什么东西,int a;算声明还是定义呢?
我用2个cpp包含下面这个点h文件
int a; //重定义
int b = 1; //重定义
static int c; //可以
上面的int a,int b =1;和static int c不一样是定义吗?
把变量声明写在.h文件 到底要怎么写呢?
cpp
.h
------解决方案--------------------
int a;算声明还是定义呢? --》定义,因为定义会分配内存。
上面的int a,int b =1;和static int c不一样是定义吗? --》都是定义,作用域也一样。
声明用extern.如extern int a;
然后在你使用a的.cpp or .c中define它。
------解决方案--------------------
extern int a;
extern int b;
要避免多个文件互相包含,要用#ifndef.. #define ..#endif
------解决方案--------------------
static int c; 虽然是定义, 但是它是内部链接的, 可以写在 .h 里.