[英]use of undeclared identifier
static void cmd_help(char *dummy)
{
struct command *c;
puts("commands are:");
c = mscp_commands;
do {
printf("%-8s - %s\n", 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
在c = mscp_commands;
它发出一个错误。 您需要向上移动mscp_commands
定义,或者至少像这样声明它
extern struct command mscp_commands[];
在使用此标识符之前。
这些语言具有“向前声明”的概念。 这些声明说Blah
名称是结构或枚举,没有提供任何进一步的细节。 但是至少应该存在。 否则,这是语法错误。 在您的示例中,与command
无关。
移动
struct command mscp_commands[] = {
};
在cmd_help
函数之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.