首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在C中声明一个名为CURSES的函数吗?

我可以在C中声明一个名为CURSES的函数吗?
EN

Stack Overflow用户
提问于 2012-02-11 19:28:46
回答 4查看 146关注 0票数 1

在Linux平台上,使用名为CURSES的函数时会出现编译错误。如果我将名称更改为"my_curses“之类的其他内容,就不会再有错误了。

我知道有一个curses.h,但是我不知道任何名为CURSES的函数。在标准中是否已经存在一个名为CURSES的函数,或者在库中已经构建了一个函数?

原型: void CURSES(int x)

错误:“错误:数值常量之前的语法错误”

然后在函数声明中,我得到了一堆类似的错误,还有一堆带有“冲突类型”的错误。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-11 19:33:47

诅咒很可能是一种定义。所以你的选择是:

  • #undef诅咒--这不是一个好的选择,除非你确切知道在哪里和由谁来定义这个定义。
  • 调用您的函数诅咒或Curses或简单的诅咒。
  • 将名称更改为您的函数。

编辑: my includes上的一个简单的grep告诉我,curses.h和ncurses.h都有这一行

代码语言:javascript
运行
复制
#define CURSES 1
票数 6
EN

Stack Overflow用户

发布于 2012-02-11 19:34:28

Q:我可以在C中声明一个名为curses的函数吗?

答:当然可以。“咒骂()”和“咒骂()”都是法律名称。

Q:错误:“错误:数值常量之前的语法错误”

如果您在紧接错误行之前、之后和包括错误行之后粘贴代码,这将很有帮助。可能是很简单的事。也许你只是忘了原型之后的";“?

例子:

代码语言:javascript
运行
复制
void CURSES(int x);

此外:

1)完全有可能与其他不同的函数或#定义“诅咒”发生冲突。检查你的“包括”(或者把你的“包括”剪切/粘贴到你的帖子中)。

2)“诅咒”是一个法律功能名称.但这是个糟糕的选择。我只会用大写字母来定义宏(而不是函数名)。

例子:

代码语言:javascript
运行
复制
#define MY_MACRO(x)

void my_function (int x);
票数 1
EN

Stack Overflow用户

发布于 2012-02-11 19:30:36

编译器说这不是函数名,而是常量。

决定使用的是另一个名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9243349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档