C не имеет понятия объекта статического члена структуры / класса, подобного C ++ ... в C, ключевое слово static
в объявлениях структур и функций просто используется для определения того, что этот объект должен быть тольковиден текущему модулю кода во время компиляции.Таким образом, ваш текущий код пытается использовать ключевое слово static
не будет работать.Кроме того, вы не можете инициализировать элементы данных структуры в точке объявления, как вы это сделали.Вместо этого вы можете сделать следующее, используя обозначенные инициализаторы :
static struct {
position initial_position;
double feedrate;
long speed;
int g_code;
} move = { .initial_position.X = 1.2,
.initial_position.Y = 1.3,
.initial_position.Z = 2.4,
.initial_position.A = 5.6,
.feedrate = 3.4,
.speed = 12,
.g_code = 100};
Конечно, инициализация анонимной структуры, подобной этой, не позволит вам создать более одной версии типа структуры без специальногонабрав другую версию, но если это все, что вы хотели, то она должна выполнить эту работу.