使用未申报的标识符
use of undeclared identifier
本文关键字:标识符 更新时间:2023-10-16
static void cmd_help(char *dummy)
{
struct command *c;
puts("commands are:");
c = mscp_commands;
do {
printf("%-8s - %sn", c->name ? c->name : "", c->help);
} while (c++->name != NULL);
}
struct command mscp_commands[] = {
....
};
我正在尝试将程序从C转换为C 。资格是它通过G 编译;
我遇到了这个错误:
错误:使用未确定的标识符'MSCP_Commands' c = mscp_commands;
我认为它必须对无法"看到" struct命令的函数做一些事情。有人可以帮忙吗?
在C 中,所有内容都应在使用前声明或定义。当编译器找到以前从未见过的标识符,就像c = mscp_commands;
中的mscp_commands
一样,它会发出错误。您需要将mscp_commands
的定义移动或至少像
extern struct command mscp_commands[];
使用此标识符。
这些语言的概念是"正向声明"。这样的声明说,名称Blah
是结构或枚举,而无需提供任何其他细节。但至少应该存在。否则,这是语法错误。在您的示例中,command
没有任何内容。
移动
struct command mscp_commands[] = {
};
在cmd_help
函数之前。
相关文章:
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- #ifdef和未声明的标识符
- f2、f3、f4标识符未找到
- 设置 Visual Studio for MPI: 找不到标识符错误
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 如何让 GCC/Clang 在保留标识符上出错
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 使用说明符 extern 声明的C++中的标识符链接
- C++:枚举:错误:应使用标识符而不是"}"
- 为什么我们不能重复使用具有不同模板参数的别名模板标识符?
- Visual Studio C++ PlaySound 标识符未定义
- 为什么我们不编写可以处理C++标识符的汇编器和链接器?
- 使用未声明的标识符"sqrt"?
- 找不到标识符合并
- 在模板化函数中重新定义(忽略)的 SWIG 标识符
- 在 c++ 中找不到此函数的标识符
- 对类 (C++) 中的私有变量使用未声明的标识符