Несколько ключевых слов на языке c

auto: автоматические локальные переменные, как правило, когда мы определяем локальные переменные, они являются автоматическими локальными переменными, но это имеет тот же эффект, когда мы опускаем их при записи, локальные переменные сохраняются в стеке.

extern: глобальные переменные жизни. Например, я определяю int a в ac, но я хочу назвать это a в bc, но оно не определено.В настоящее время, прежде чем использовать эту переменную в bc, используйте extern a, чтобы сообщить a, что она определена в другом файл, и вы можете использовать его.

static: есть два варианта использования, первый — модифицировать локальные переменные, называемые статическими локальными переменными. Статические локальные переменные аналогичны назначенным глобальным переменным, хранятся в сегменте данных и имеют такой же жизненный цикл. Его связь без связи.

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

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

летучий: переменный, изменчивый. Есть три ситуации, когда значение переменной неизвестно: 1. Значение, измененное прерыванием, 2. Та же самая переменная, используемая в многопоточности, 3. Значение (регистр), измененное аппаратно, эти три компилятора не могут узнать изменение стоимости. Таким образом, он используется, чтобы сказать компилятору не оптимизировать эту переменную, когда он встречает эту переменную. В этом случае ошибок не будет.

const: часто используется для определения констант, указывая на то, что константы не могут быть изменены. В основном это зависит от того, какой из них ближе всего к константе, то есть какой из них изменяется, рядом с * означает, что значение не может быть изменено, а рядом с переменной означает, что адрес не может быть изменен.

  • const int * a: постоянный указатель, значение не может быть изменено, и указанный адрес может быть изменен.
  • int * const a: Константа указателя, значение может быть изменено, но указанный адрес не может быть изменен.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42432281/article/details/106143580
conseillé
Classement