C 标题中定义了var的重复符号&;多重包涵体保护

C 标题中定义了var的重复符号&;多重包涵体保护,c,gcc,compiler-errors,C,Gcc,Compiler Errors,我有一个头文件(称为ft#u opp.h),我试图将其包含在两个不同的.c文件中: #ifndef __FT_OPP_H__ # define __FT_OPP_H__ t_opp gl_opptab[] = {{"-", &ft_sub}, \ {"+", &ft_add}, \ {"*", &ft_mul}, \ {"/", &ft_div}, \ {"%", &ft_mod}, \ {"", &ft_usage}}; #endif /* __

我有一个头文件(称为ft#u opp.h),我试图将其包含在两个不同的.c文件中:

#ifndef __FT_OPP_H__
# define __FT_OPP_H__
t_opp gl_opptab[] = {{"-", &ft_sub}, \
{"+", &ft_add}, \
{"*", &ft_mul}, \
{"/", &ft_div}, \
{"%", &ft_mod}, \
{"", &ft_usage}};
#endif /* __FT_OPP_H__ */
我别无选择,只能使用此文件来定义gl_opptab数组(这是学校练习的一部分,我应该按原样使用此文件)

然而,在编译之后,我不断从GCC获得以下消息:

重复符号_gl_opptab in: /var/folders/zz/zyxvpxvq6csfxvn_n0000hvc0046v/T//ccrPWPyP.o /var/folders/zz/zyxvpxvq6csfxvn_n0000hvc0046v/T//cc2JUzLs.o ld:1架构x86_64集合的重复符号2:ld返回1个退出 状态生成::[ft\U advanced\U do-op]错误1

我试着只在一个文件中包含它,并在另一个.c文件中使用
extern t_opp*gl_opptab
。但它似乎不起作用


我怎样才能做到这一点呢?

extern t_opp*gl_opptab
与标头中定义的结构数组不同。尝试
extern t_opp gl_opptab[]在另一个.c文件中。当然,另一个.c文件需要知道什么是
topp
,因此另一个.c文件中至少还需要包含一个头