如何在C语言中定义头文件中的常量变量

时间:2013-03-20 17:15:28

标签: c

我在头文件中定义了几个结构 一些结构具有恒定值的所有其他成员,而其他一些结构具有部分 他们的成员具有不变的价值

对于具有常量成员的结构,是否可以定义常量变量 在头文件中?

就像头文件tcp_option.h

一样
struct tcp_opt_nop
{
    _uint_t kind;  /* it has a constant value 0x01*/
}

所以我想定义一个常量变量,比如

struct tcp_opt_nop opt_nop={ 0x01};

然后这个变量可以被其他源文件使用

2 个答案:

答案 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;
}