Прежде чем вы пометите ее как дубликат/нисходящее, Я прочитал книги, потратил приличное количество времени на Интернет, исследуя это, но НЕ МОГУ найти ответ.Инициализация структуры в C
Я хочу инициализировать мою структуру, когда я ее создаю. Но я также хочу, чтобы объявить его как тип, используя ЬурейиЙ
Вот что я пытаюсь сделать
typedef struct Clock_TAG Clock;
struct Clock_TAG{
int time;
}Clock = {
0
};
И это дает мне ошибку «переопределение„Часы“, как различного рода символ»
typedef struct Clock_TAG{
int time;
}Clock = {
0
};
дает «незаконное инициализатору (только переменные могут быть инициализирована)»
Я знаю, что я должен использовать имя структуры, чтобы инициализировать его, я хочу, чтобы инициализировать его во время его создания, поэтому, пожалуйста, не предлагайте метод init().
Это пример код, я хочу конкретно понять, как я могу иметь ЬурейиЙ и инициализацию структуры в файле .h Я знаю, что есть много способов обойти это, я могу опустить с помощью ЬурейеГо или инициализировать-структуру членов, но я хочу понять, почему это дает мне ошибку и как ее исправить.
P.S Является ли также законным для malloc структуры в файле .h?
Вы не читали внимательно или не понимали, как работают определения typedef и 'struct' и определения переменных. Компилятор уже точно говорит вам, что не так. И вы никогда не должны _define_ переменную в заголовке. – Olaf
Я читал очень внимательно и да, мне не хватает понимания, вот почему я спрашиваю. Ну, другой человек в моем предыдущем вопросе о stackoverflow сказал мне, что это правильный способ сделать это. – ada
@ Олаф тоже не возражаете объяснить почему? – ada