В C (ANSI C) все переменные автоматически по умолчанию, поэтому в чем причина автоматического ключевого слова? Можете ли вы назвать примеры использования ключевого слова auto? (За исключением C++ 14).В чем причина ключевого слова auto в чистом C?
ответ
Все переменные - неauto
по умолчанию; Например, все, что объявлено в области файлов, составляет static
.
Ключевое слово auto
- это перерыв с языков BCPL и B, из которых был получен C. В настоящий момент это в значительной степени рудиментарно, но тем не менее это не наносит вреда, поэтому нет причин избавляться от него.
В ключевом слове auto ключевое слово auto определяется локальный класс хранения переменных, который имеет локальное или ограниченное время жизни от конца своего объявления до конца его охватывающей области (блока или функции); как только поток программы выходит из этой области, этот экземпляр переменной перестает существовать.
Пример ::
Auto [data_type] [variable_name];
Так что это два:
auto int var;
int var;
Оба заявления имеет тот же смысл. Поскольку ключевое слово auto - это локальное время жизни по умолчанию для локальных переменных, ключевое слово auto крайне редко используется, оно имеет смысл только для разработчика-компилятора или интерпретатора, делающего запись в таблице символов или в качестве ключевого слова автозапуска. Auto ключевое слово говорит, что это хранилище автоматически выделяется при вводе блока (в отличие от глобального статического распределения или динамического распределения в куче).
Это не утверждения, а декларации. – Olaf
Спасибо, я исправлю это. – Michi
Некоторые программисты предпочитают явно указывать намерения. Ключевое слово auto позволяет использовать это, хотя и мало. В Java, например, член класса области пакета объявляется, когда общедоступные, частные и защищенные ключевые слова отсутствуют в объявлении участника. Мне никогда не нравилось это решение по дизайну, поскольку оно позволяет надзору вызывать непреднамеренный уровень видимости. Вероятно, причина, по которой это никогда не происходит с C, заключается в том, что авто будет тем, что предполагается, когда класс хранения не учитывается в объявлении переменной C. –
http://stackoverflow.com/questions/2192547/where-is-the-c-auto-keyword-used – Alexguitar
Это возможно [дубликат] (http://stackoverflow.com/questions/4688816/concept -of-auto-keyword-in-c). – Michi
Как вы просите C (btw. Это называется ISO-C или просто C, потому что это должно подразумевать стандартное соответствие), нет необходимости исключать C++. C++ - это двуязычный язык. Или вы также хотите явно исключить Java, Ruby или Cobol? – Olaf