我在头文件中定义了几个结构,一些结构具有常量值的所有其他成员,而其他一些结构的成员部分具有常量值
对于具有常量成员的结构,是否可以在头文件中定义常量变量?
就像在头文件tcp_option.h中一样
struct tcp_opt_nop
{
_uint_t kind; /* it has a constant value 0x01*/
}
Run Code Online (Sandbox Code Playgroud)
所以我想定义一个常量变量,比如
struct tcp_opt_nop opt_nop={ 0x01};
Run Code Online (Sandbox Code Playgroud)
然后这个变量可以被其他源文件使用
你应该extern变量.
.h 文件:
#ifndef HDR_H
#define HDR_H
typedef struct
{
int kind; /* it has a constant value 0x01*/
} tcp_opt_nop;
extern const tcp_opt_nop opt_nop;
#endif
Run Code Online (Sandbox Code Playgroud)
.c 文件:
#include "hdr.h"
const tcp_opt_nop opt_nop = {0x01};
Run Code Online (Sandbox Code Playgroud)
主文件:
#include "hdr.h"
int main()
{
printf("%i\n", opt_nop.kind);
// ...
}
Run Code Online (Sandbox Code Playgroud)