我在头文件中定义了几个结构 一些结构具有恒定值的所有其他成员,而其他一些结构具有部分 他们的成员具有不变的价值
对于具有常量成员的结构,是否可以定义常量变量 在头文件中?
就像头文件tcp_option.h
一样struct tcp_opt_nop
{
_uint_t kind; /* it has a constant value 0x01*/
}
所以我想定义一个常量变量,比如
struct tcp_opt_nop opt_nop={ 0x01};
然后这个变量可以被其他源文件使用
答案 0 :(得分:5)
你应该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
.c
档案:
#include "hdr.h"
const tcp_opt_nop opt_nop = {0x01};
主文件:
#include "hdr.h"
int main()
{
printf("%i\n", opt_nop.kind);
// ...
}
答案 1 :(得分:-2)
#include<stdio.h>
typedef struct temp
{
int a;
} temp;
const temp test={5};
int main()
{
printf("%d",test.a);
return 0;
}