Декларация на языке C

Я пытался объявить это программированию на C, но получается ошибка. Есть ли в этом ошибка?

Ошибка

poker_comp.c: In function ‘newdeck’:
poker_comp.c:40:15: warning: assignment to ‘Card *’ {aka ‘struct card *’} from incompatible pointer type ‘Card *’ {aka ‘struct card *’} [-Wincompatible-pointer-types]
   40 |     deck->top = newcard(p,s);
      |               ^
poker_comp.c:41:12: warning: assignment to ‘Card ’ {aka ‘struct card *’} from incompatible pointer type ‘Card *’ {aka ‘struct card **’} [-Wincompatible-pointer-types]
   41 |     cursor = deck->top;
      |            ^

Код

typedef enum boolean {false, true} flipped;`
typedef struct card{
    int pips;
    char suit;
    bool flipped;
    int *nextCard;
}Card;

typedef struct deck{
    struct card[52];
    Card **cards;
}Deck;

typedef struct player{
    char name;
    int *c1, *c2;
    int acc;
}Player;

Какая ошибка? Пожалуйста, обновите вопрос с точными сообщениями об ошибках. Также просьба не размещать изображения текста - рассуждения . Скопируйте его как текст в вопрос.

kaylum 12.12.2020 12:03

Как новый пользователь здесь, пожалуйста, также пройдите тур и прочитайте Как спросить.

Ulrich Eckhardt 12.12.2020 12:20

Действительно ли в коде есть обратная галочка рядом с «typedef enum boolean {false, true} flipped;» (первая строка кода)? Или здесь ошибка форматирования?

Peter Mortensen 04.05.2023 21:26

Опубликованный код и опубликованные ошибки, похоже, вообще не соответствуют.

Peter Mortensen 04.05.2023 21:29

Хорошо, ОП покинул здание: «Последний раз видели более 2 лет назад».

Peter Mortensen 04.05.2023 21:29
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
typedef enum boolean {false, true} flipped;`

заканчивается обратной цитатой, и это неправильно.

 struct card[52];

неверно (и эквивалентно Card[52];, что тоже неверно); может быть, вы хотите Card card_deck[52]; и позже использовать card_deck вместо card...

Если вы используете GCC (на самом деле GCC 10 в Ubuntu 20) в своем коде aprilia.c as gcc -Wall -Wextra -g -c aprilia.c, вы получаете сообщения об ошибках:

gcc -Wall -Wextra -c /tmp/aprilia.c -o /tmp/aprilia.o
aprilia.c:1:44: error: stray ‘`’ in program
    1 | typedef enum boolean {false, true} flipped;`
      |                                            ^
aprilia.c:9:16: error: expected identifier or ‘(’ before ‘[’ token
    9 |     struct card[52];
      |                ^

См. этот справочный сайт C . Прочтите хорошую книгу по программированию на C, например, Modern C.

Обратитесь также к недавнему проекту стандарта C, например n1570 или чему-то более новому.

Подумайте о том, чтобы черпать вдохновение из существующих бесплатных программ , написанных на C, таких как GNU Bash.

Подумайте также об использовании какого-нибудь инструмента статического анализа, например, Frama-C или анализатора Clang (или, возможно, в середине 2021 года, Bismon).

Для помеченных типов объединения в C рассмотрите возможность наличия некоторого поля union внутри некоторого struct.

Другие вопросы по теме