gpt4 book ai didi

c++ - Objective-C:避免_作为局部变量名的技术原因?

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:59 25 4
gpt4 key购买 nike

在方法(函数、 block 等)的(可能嵌套的)范围内考虑这一点:

int _ = 42;

是否有任何技术原因来避免使用名为_ 的局部变量?

针对这个问题的目的的一些指导:

  • 我知道 _ 通常在 Objective-C 实例变量前加上前缀。把那个放在一边。欢迎评论与公约的其他冲突。
  • 我也喜欢漂亮的代码,但是这里强烈不鼓励品味陈述或纯粹观点(例如“它{令人困惑、不可读、无法维护}”)。†。
  • 我主要想为 Objective-C 回答这个问题,但回答与 C 或 C++ 相关的也受到鼓励。

† 给我买一品脱,你可以告诉我一切。 :)

最佳答案

C99 §7.1.3 说所有以至少一个下划线开头的标识符都保留供实现使用,仅作为文件范围标识符1 _ 是一种至少以一个下划线开头的标识符,因此您不应该在文件范围内以任何方式定义它。2

但是,作为本地 变量名,_ 对应用程序程序员来说是公平的游戏。只有以两个下划线或一个下划线然后是一个大写字母开头的标识符才会被无条件保留。

如脚注所示,违反这些规则比遵守这些规则更受尊重。

1 是的,这意味着以 _ 后跟小写字母开始“仅供内部使用”的函数名称的非常​​普遍的做法在技术上是违反一致性的。

2 GNU gettext是打破此规则的著名第三方库;鼓励程序员使用 #define _(x) gettext(x) 作为速记。

关于c++ - Objective-C:避免_作为局部变量名的技术原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826999/

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