Рассмотрим это в (возможно, вложенном) объеме метода (функции, блока и т. Д.):
int _ = 42;
Есть ли технический причины избегать локальной переменной с именем _
?
Некоторое руководство, для цель этого вопроса:
_
обычно префиксы переменных экземпляра Objective-C.† Купите мне пинту, и вы можете рассказать мне все об этом. 🙂
C99 §7.1.3 говорит, что все идентификаторы, начинающиеся как минимум с одного подчеркивания, зарезервированы для использования реализацией, только как идентификаторы области файла.1 _
является идентификатором, который начинается по крайней мере с одного подчеркивания, поэтому вы не должны определять его каким-либо образом в области видимости файла.2
Тем не менее, как местный имя переменной, _
Честная игра для программиста приложений. Только идентификаторы, начинающиеся с любого два подчеркивания, или подчеркивание, а затем заглавная буква, зарезервированы безоговорочно.
Эти правила соблюдаются больше в нарушение, чем в соблюдении, как показывают сноски.
1 Да, это означает очень распространенную практику запуска имен функций «только для внутреннего использования» с _
сопровождаемый строчной буквой технически является нарушением соответствия.
2 GNU gettext является известной сторонней библиотекой, которая нарушает это правило; программисту предлагается #define _(x) gettext(x)
как стенография.
Чтобы ответить на ваш вопрос просто — нет, нет технический причины, чтобы этого избежать. Хотя есть много других причин.