Я пытался объявить это программированию на 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;
Как новый пользователь здесь, пожалуйста, также пройдите тур и прочитайте Как спросить.
Действительно ли в коде есть обратная галочка рядом с «typedef enum boolean {false, true} flipped;
» (первая строка кода)? Или здесь ошибка форматирования?
Опубликованный код и опубликованные ошибки, похоже, вообще не соответствуют.
Хорошо, ОП покинул здание: «Последний раз видели более 2 лет назад».
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, например n1570 или чему-то более новому.
Подумайте о том, чтобы черпать вдохновение из существующих бесплатных программ , написанных на C, таких как GNU Bash.
Подумайте также об использовании какого-нибудь инструмента статического анализа, например, Frama-C или анализатора Clang (или, возможно, в середине 2021 года, Bismon).
Для помеченных типов объединения в C рассмотрите возможность наличия некоторого поля union
внутри некоторого struct
.
Какая ошибка? Пожалуйста, обновите вопрос с точными сообщениями об ошибках. Также просьба не размещать изображения текста - рассуждения . Скопируйте его как текст в вопрос.