C++ 目标C:避免将u作为局部变量名的技术原因?

C++ 目标C:避免将u作为局部变量名的技术原因?,c++,objective-c,c,naming-conventions,variable-names,C++,Objective C,C,Naming Conventions,Variable Names,在方法(函数、块等)的(可能嵌套的)范围内考虑这一点: 是否有任何技术原因可以避免使用名为的局部变量 就本问题而言,提供一些指导: 我知道,。通常在Objective-C实例变量前面加前缀。 别提了。欢迎评论与公约的其他冲突 我也喜欢漂亮的代码,但是这里强烈不鼓励表达品味或纯粹的观点(例如,“它{令人困惑、无法阅读、无法维护}”) 我主要想为Objective-C回答这个问题,但是 与C或C++相关的也被鼓励。 †给我买一品脱,你就可以告诉我全部情况了。:) 简单地回答您的问题-不,没有任何

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

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

就本问题而言,提供一些指导:

  • 我知道,
    通常在Objective-C实例变量前面加前缀。 别提了。欢迎评论与公约的其他冲突
  • 我也喜欢漂亮的代码,但是这里强烈不鼓励表达品味或纯粹的观点(例如,“它{令人困惑、无法阅读、无法维护}”)
  • 我主要想为Objective-C回答这个问题,但是 与C或C++相关的也被鼓励。

†给我买一品脱,你就可以告诉我全部情况了。:)

简单地回答您的问题-不,没有任何技术原因可以避免它。还有很多其他原因。

简单地回答你的问题-不,没有任何技术原因可以避免。但是还有很多其他原因。

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

然而,作为一个局部变量名,
对于应用程序程序员来说是一个公平的游戏。仅无条件保留以两个下划线或一个下划线和一个大写字母开头的标识符

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

1是的,这意味着在“仅限内部使用”函数名开头加上
\uu
,后跟小写字母的非常常见的做法在技术上是违反一致性的


2是违反这一规则的著名第三方图书馆;鼓励程序员将gettext(x)定义为速记。

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

然而,作为一个局部变量名,
对于应用程序程序员来说是一个公平的游戏。仅无条件保留以两个下划线或一个下划线和一个大写字母开头的标识符

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

1是的,这意味着在“仅限内部使用”函数名开头加上
\uu
,后跟小写字母的非常常见的做法在技术上是违反一致性的


2是违反这一规则的著名第三方图书馆;我们鼓励程序员将gettext(x)
定义为速记。

我看到的唯一缺点是,它不是一个变量的描述性名称,除此之外,它是一个有效的C变量名称:事实上,如果你想成为一个单行程序和模糊的代码(两者同时出现),这是一个非常好的实践。我正在寻找技术事实。虽然你们说的可能是一个好的实践,但是很多编程都是手艺,我仍然认为它们是“味觉或纯粹的观点”。对于任何一个亲近的人来说,这个问题都是“主要基于意见的”:你读过有关“有什么技术原因”和“意见不一致”的部分吗?它不是一个变量的描述性名称,除此之外,它是一个有效的C变量名称:事实上,如果您想成为一个单行代码和模糊代码(两者同时出现),这是一个非常好的实践。我正在寻找技术事实。虽然你们说的可能是一个好的实践,但是很多编程都是手艺,我仍然认为它们是“味觉或纯粹的意见”。对于那些被认为是“主要基于意见的人”的问题,你读过有关“有任何技术原因”和“意见声明被劝阻”的部分吗??我认为可维护性差是一个技术原因。@HotLicks我编辑这个问题是为了明确地将可维护性排除在范围之外。我认为可维护性差是一个技术原因。@HotLicks我编辑这个问题是为了明确地将可维护性排除在范围之外。谢谢,这正是我要查找的信息。我很可能会在一两天内通知你。谢谢,这正是我想要的信息。我很可能会在一两天内检查你。
int _ = 42;