3

我在头文件中定义了几个结构,一些结构的所有成员都具有常量值,而其他一些结构的部分成员具有常量值

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

就像在头文件 tcp_option.h

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

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

struct tcp_opt_nop opt_nop={ 0x01};

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

4

2 回答 2

6

你应该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);
    // ...
}
于 2013-03-20T17:57:09.650 回答
-3

是的,你可以定义。请参阅以下代码。

#include<stdio.h>
typedef struct temp
{
    int a;
} temp;
const temp test={5};
int main()
{
    printf("%d",test.a);
    return 0;
}
于 2013-03-20T17:35:54.557 回答