Сохранение изменений, внесенных в массив переменных

#c #arrays #gcc

#c #массивы #gcc

Вопрос:

Я сохраняю позиции игроков для программы, которую я пишу, в массивах, хранящихся как глобальные переменные, примером которых является:

 float motor1[] = {4.312, 27.312};
  

Каждый раз, когда выполняется перемещение, у меня есть функции, называемые checkposition, переместить игрока и обновить позицию, которые извлекают и обновляют этот массив. Все эти функции находятся в одном модуле под названием motor.c и имеют иерархию, в которой они выполняются. У меня есть основной модуль main.c, который вызывает этот модуль и передает ему некоторую информацию, а motor.c обрабатывает ее, а затем выдает ответ. Меня смущает то, что, поскольку массив сохраняется как глобальная переменная, означает ли это, что он инициализируется при каждом вызове этого модуля? Это означало бы, что моя функция обновления позиции никогда не будет работать после первого хода.

Ответ №1:

Нет, если это глобальная переменная, она инициализируется только один раз, при запуске программы.

Комментарии:

1. Итак, даже если я запускаю цикл while (1) в main, и этот модуль вызывается повторно с некоторой информацией, массивы не будут повторно инициализированы?

2. @user993393: Правильно. Глобальные переменные инициализируются только один раз, при запуске программы.

Ответ №2:

Нет, глобальная переменная инициализируется при запуске программы (и только тогда)