Есть ли преимущества определения имен переменных как __00000001 в C / Stack Overflow

Есть ли какие-либо преимущества в определении имен переменных как __00000001, __00000002 и т. Д.?

Пример:

int __00000001, __00000002 = 0;
for (__00000001 = 0; __00000001 < 10; __00000001++) {
__00000002 = __00000002 + __00000001;
}
...

Обновление: это упоминалось на одном из моих занятий по программированию несколько лет назад, и я вспомнил, что профессор сказал, что есть некоторые преимущества его использования. Однако я не могу вспомнить больше информации. Возможно я не прав.

-4

Решение

Эти конкретные имена переменных недоступны для пользовательских программ:

Все идентификаторы, которые начинаются со знака подчеркивания, а также заглавной буквы или другого знака подчеркивания, всегда зарезервированы для любого использования. (C11, раздел 7.1.3, пункт 1)

Так что это большой недостаток.

5

Другие решения

Стоит ли запутывать дерьмо в своем коде? Нет, если только ваша цель не состоит в том, чтобы буквально сделать это: сделать ваш код настолько трудным для чтения, насколько это возможно. Проблема в том, что вы тоже должны это прочитать.

Иногда вы сталкиваетесь с таким кодом, когда кто-то «декомпилирует» программу — имена переменных не сохраняются в процессе компиляции, так что это своего рода лучшее, что может сделать декомпилятор при реконструкции программы C ++. Конечно, он не может действительно реконструировать программу на C ++; он может только повторить уплощенную логику в синтаксисе C ++. Ну что ж.

Обращаясь конкретно к вашему примеру, стоит отметить, что все идентификаторы, начинающиеся с двух подчеркиваний, зарезервированы для реализации (ваш компилятор и стандартная библиотека), поэтому ваша программа имеет неопределенное поведение.

4

По вопросам рекламы [email protected]