C-省略参数名称?找不到错误

时间:2018-10-05 18:09:01

标签: c hardware intel

因此,我正在为大学编程Intel 8253 PIT,但我认为上下文与该问题无关。因此,我正在尝试编译我的文件,并且不断收到“省略参数名称”错误,我真的不知道为什么。

所有内容都在连接到学院服务器的Minix VM中进行编译。我只是cd到该文件夹​​,然后键入“ Make”,命令是自动的。真的不知道细节。以下是更多信息:

功能:

int timer_test_read_config(uint8_t timer, enum timer_status_field field) {
  uint8_t temp;
  timer_display_conf(timer,temp,field);
  return 1;
}

枚举声明:

enum timer_status_field {
    all,        /*!< configuration/status */
    initial,    /*!< timer initialization mode */
    mode,       /*!< timer counting mode */
    base        /*!< timer counting base */
};

错误消息:

lab.c:33:5: error: parameter name omitted
int timer_test_read_config(uint8_t timer, enum timer_status_field field) {

为什么会出现错误?我真的不明白。我可能真的很笨,但是是的,我需要一些帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

下面的旧答案,由于对该问题的编辑而无效。

现在,如果没有更详细的MCVE,它将无法回答,因为如果添加<!DOCTYPE HTML> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head> <body> <div class="col-xs-6"> <select class="form-control" name="select1" id="select1"> <option value="1">Fruit</option> <option value="2">Animal</option> <option value="3">Bird</option> <option value="4">Car</option> </select> </div> <div class="col-xs-6"> <select class="form-control" name="select2" id="select2"> <option value="1">Banana</option> <option value="1">Apple</option> <option value="1">Orange</option> <option value="2">Wolf</option> <option value="2">Fox</option> <option value="2">Bear</option> <option value="3">Eagle</option> <option value="3">Hawk</option> <option value="4">BWM <option> </select> </div> </body> </html>,则当前代码可以使用gcc进行编译。 (https://godbolt.org/z/VKZmU4)。


您在#include <stdint.h>声明的末尾忘记了结尾的;

enum

这可以编译。自己将原始的枚举声明编译到文件中以获取更清晰的错误消息:

enum timer_status_field {
    all,        /*!< configuration/status */
    initial,    /*!< timer initialization mode */
    mode,       /*!< timer counting mode */
    base        /*!< timer counting base */
};  /// Note added ; on this line

foo.c:6:1: error: expected identifier or ‘(’ at end of input } ^ 之后有其他内容,您的编译器试图将其解释为该类型的变量,因为}是有效的声明。


有了此更改,您的整个代码就可以正常编译(使用enum { foo, bar } varname;),当然只是警告未声明的函数。