Какое отношение имеет локальность к изменению имен arg c и argv? - PullRequest
0 голосов
/ 03 мая 2020

Этот вопрос может быть глупым. C standard:(referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared) Какое отношение localness к main переменных arg c и argv имеет отношение к изменению их имен? - Я знаю, что их имена могут быть изменены. - Я не понял утверждения в стандарте относительно локальности переменных. Пожалуйста, помогите мне.

Ответы [ 2 ]

3 голосов
/ 03 мая 2020

«Локальность» означает, что то, что происходит внутри сферы «что бы то ни было», не влияет на остальной мир. Что касается имен параметров функции go, эти имена не отображаются вне функции. Что подвергается (в различной степени в зависимости от реализации и системных стандартов) сигнатуры функций (прототипы).

Термин "локальность" не задается от c до main. Каждая функция имеет локальную область видимости. Так же, как и main. И его параметры типа int и (char*)[] не видны по имени для внешнего мира.

1 голос
/ 03 мая 2020

Какое отношение имеет локальность к основной функции переменных arg c и argv при изменении их имен? - Я знаю, что их имена можно изменить - я не понял утверждения в стандарте относительно локальности переменных.

Я думаю, вы просто упускаете из виду очевидное. Вопрос, который стандарт пытается решить, заключается в следующем: «Нужно ли использовать имена argc и argv для параметров main()?» Я думаю, что я действительно видел этот вопрос, поставленный здесь на SO, хотя я не смог найти его в быстром поиске. Кажется, вы предполагаете, что, конечно, вы можете называть параметры как угодно, поскольку они являются параметрами функции. Положение, о котором вы спрашиваете, лишь подтверждает это.

Полагаю, вы не понимаете, как кто-то, читающий стандарт, может лишить вас другого впечатления, и вы, кажется, особенно были выбиты стандартным наименованием main конкретно. Все это заключено в том факте, что main - это единственная и единственная функция, которую стандарт указывает для программы (в отличие от реализации C), и что в стандарте определены две конкретные c опции для * Подпись 1012 *, из которой должен выбрать программист. Никакие отклонения от них невозможны, если программа должна демонстрировать строгое соответствие спецификации языка. Положение, о котором вы спрашиваете, просто разъясняет, что использование разных имен параметров не является значительным изменением подписи для этой цели.

...