在Linux平台上,我因使用名为CURSES
的函数而遇到编译错误。如果我将名称更改为其他名称,例如“my_curses”,则不会再出现错误
我知道有一个curses.h
,但我不知道任何名为CURSES
的函数。在标准库或内置库中是否存在一个名为CURSES
的函数?
原型:
void CURSES(int x)
错误: “错误:数字常量之前的语法错误”
然后在函数声明中,我得到了一堆类似的错误以及一堆“冲突类型”的错误。
答案 0 :(得分:6)
CURSES可能是一个定义。所以你的选择是:
编辑:我的包含一个简单的grep告诉我curses.h和ncurses.h都有这行
#define CURSES 1
答案 1 :(得分:1)
问:我可以在C中声明一个名为curses的函数吗?
答:好的。 “curses()”和“CURSES()”都是合法的名称。
问:错误:“错误:数字常量之前的语法错误”
如果您在错误行之前,之后和之后粘贴代码会很有帮助。这可能很简单。也许你只是忘记了“;”原型之后?
实施例
void CURSES(int x);
ALSO:
1)完全有可能与其他一些不同的函数或#define“CURSES”发生冲突。检查您的#include's(或将#include's剪切/粘贴到您的帖子中)。
2)“CURSES”是一个合法的函数名称......但它是一个糟糕的选择。我只会对#define宏使用大写字母(而不是函数名)。
实施例
#define MY_MACRO(x)
void my_function (int x);
答案 2 :(得分:0)
编译器说这不是函数名,而是常量
决定使用其他名称。
答案 3 :(得分:-4)
你有一个原型声明void CURSES(int x)
。这是无效的,在C中原型声明应该是:void CURSES(int)
。然后你的函数实现/声明就像:
void CURSES(int x) {
printf("Curses! Got: %d\n", x);
}