C编译器错误,在.C文件中有查找表

C编译器错误,在.C文件中有查找表,c,lookup-tables,C,Lookup Tables,下面是一个c文件的内容。我正在生成一个查找表,当test.c尝试将其编译成测试程序时,我得到以下错误: In file included from test.c:1: lut.h:1: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âvaluesâ 有人知道这个错误吗?我正在尝试将此查找表作为.c文件包含以供使用。(我不会选择这样做,但这是一项要求) 我使用的测试程序(仅用于测试编译)是: 我无法重现这个问题。我在

下面是一个c文件的内容。我正在生成一个查找表,当test.c尝试将其编译成测试程序时,我得到以下错误:

In file included from test.c:1:
lut.h:1: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âvaluesâ
有人知道这个错误吗?我正在尝试将此查找表作为.c文件包含以供使用。(我不会选择这样做,但这是一项要求)

我使用的测试程序(仅用于测试编译)是:


我无法重现这个问题。我在
lut.h
中有:

#include <stdint.h>

static const int16_t values[] = {
  29, 30, 31
};
我得到:

$ gcc test.c
$ ./a.out
30

你能提供更多的信息吗?可能是复制粘贴您的
lut.h
看起来像什么?

您还没有定义
int16\t
。尝试包括
stdint.h

看起来错误与
getTableValue
有关,所以这就是我们需要看到的。请保持礼貌,并从复制粘贴的代码中删除或修复文本编码错误。@NishithJainMR根据C的方言,可以接受尾随逗号。“但这是一个很好的建议。”波塔托斯瓦特:我也想过提出同样的建议。但是删除了评论,因为它没有切中要害。很抱歉粘贴了错误的副本。我已经更新了。getTableValue是我在测试中加入的一个函数,后来被删除了。int16\t是在哪里定义的?时间显然是要付出代价的。我的测试c中包含了,但lut.h中没有。非常感谢。
gcc test.c
#include <stdint.h>

static const int16_t values[] = {
  29, 30, 31
};
#include <stdio.h>
#include "lut.h"

int main() {
  printf("%d\n", values[1]);
  return 0;
}
$ gcc test.c
$ ./a.out
30