Я уверен, что вы знакомы со спецификаторами класса хранения в C, такими как «extern», «static», «register» и «auto». Определение «auto» в значительной степени дается в других ответах, но вот возможное использование ключевого слова «auto», в котором я не уверен, но я думаю, что это зависит от компилятора. Видите ли, в отношении спецификаторов класса хранения есть правило. Мы не можем использовать несколько спецификаторов класса хранения для переменной. Вот почему статические глобальные переменные не могут быть извлечены. Следовательно, они известны только своему досье. Когда вы переходите к настройке вашего компилятора, вы можете включить флаг оптимизации для скорости. один из способов оптимизации компилятора: он ищет переменные без спецификаторов класса хранения, а затем делает оценку на основе доступности кэш-памяти и некоторых других факторов, чтобы увидеть, следует ли обрабатывать эту переменную с использованием спецификатора регистра или нет. Теперь, что, если мы хотим оптимизировать наш код для повышения скорости, зная, что конкретная переменная в нашей программе не очень важна, и мы не хотим, чтобы компилятор даже рассматривал ее как регистр. Хотя, если поставить auto, компилятор не сможет добавить спецификатор регистра в переменную, так как набирает "register auto int a;" ИЛИ "автоматическая регистрация int a;" вызывает ошибку использования нескольких спецификаторов класса хранения. Подводя итог, я подумал, что auto может запретить компилятору обрабатывать переменную как регистр посредством оптимизации. что, если мы хотим оптимизировать наш код для повышения скорости, зная, что конкретная переменная в нашей программе не очень важна, и мы не хотим, чтобы компилятор даже рассматривал ее как регистр. Хотя, если поставить auto, компилятор не сможет добавить спецификатор регистра в переменную, так как набирает "register auto int a;" ИЛИ "автоматическая регистрация int a;" вызывает ошибку использования нескольких спецификаторов класса хранения. Подводя итог, я подумал, что auto может запретить компилятору обрабатывать переменную как регистр посредством оптимизации. что, если мы хотим оптимизировать наш код для повышения скорости, зная, что конкретная переменная в нашей программе не очень важна, и мы не хотим, чтобы компилятор даже рассматривал ее как регистр. Хотя, если поставить auto, компилятор не сможет добавить спецификатор регистра в переменную, так как набирает "register auto int a;" ИЛИ "автоматическая регистрация int a;" вызывает ошибку использования нескольких спецификаторов класса хранения. Подводя итог, я подумал, что auto может запретить компилятору обрабатывать переменную как регистр посредством оптимизации. вызывает ошибку использования нескольких спецификаторов класса хранения. Подводя итог, я подумал, что auto может запретить компилятору обрабатывать переменную как регистр посредством оптимизации. вызывает ошибку использования нескольких спецификаторов класса хранения. Подводя итог, я подумал, что auto может запретить компилятору обрабатывать переменную как регистр посредством оптимизации.
Эта теория не работала для компилятора GCC, однако я не пробовал другие компиляторы.
autoможно указать, но не произойдет по умолчанию?