gpt4 book ai didi

c - 如何处理来自 term.h 的侵入性标识符?

转载 作者:太空狗 更新时间:2023-10-29 15:27:02 25 4
gpt4 key购买 nike

测试一些代码,包括 term.h,我看到一些使用常用标识符的奇怪错误,例如 tabcolumns。这是因为这个头文件定义了很多宏。以下是一些示例:

/* from term.h */

#define columns CUR Numbers[0]
#define lines CUR Numbers[2]
#define bell CUR Strings[1]
#define insert_line CUR Strings[53]
#define tab CUR Strings[134]

但是,我没有找到任何关于这些宏常量的文档。它似乎是访问 TERMINAL 数据结构的某些成员的快捷方式。当然,一个解决方案是#undef 源代码中使用的每个标识符。但它的限制非常多。

所以我的问题是:为什么不为 term.h 的标识符添加前缀?
它们在实际源代码中经常被用作局部变量,因此会导致无法理解的错误。

最佳答案

有两种处理标识符冲突的方法:

  1. 更改term.h中的标识符
  2. 更改代码中的标识符

第一个是不可以的,我希望不需要解释的原因。 term.h 早在你的代码在你的大脑中形成思想之前就已经存在了。因此,创建冲突标识符完全是您的错^W问题^W责任。 :-)

也许还有另一种选择:

  • 首先不要使用/包含 term.h

关于c - 如何处理来自 term.h 的侵入性标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com