我有这段代码,但在编译时会给我一些错误。
[错误]预期标识符或'('之前' ['令牌
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
//functions
void createdeck();
//structures
typedef struct card{
int val;
char face;
char suit;
}deck[52];
//global variables
const char suits[4] = { 'D', 'C', 'H', 'S' };
const char face[13] = { '2', '3', '4', '5', '6', '7', '8', '9', 'X', 'J', 'Q', 'K', 'A' };
int main()
{
createdeck();
}
void createdeck()
{
int ctr1,ctr2,count = 0;
for (ctr1 = 0; ctr1 < 4;ctr1++)
{
for (ctr2 = 0;ctr2 < 13; ctr2++)
{
deck[count].val = count + 1;
deck[count].face = face[ctr2];
deck[count].suit = suit[ctr];
count = count + 1;
}
}
}
[错误]预期标识符或&#39;(&#39;之前&#39; [&#39;令牌 这就是编译器所说的
deck[count].val = count + 1;
deck[count].face = face[ctr2];
deck[count].suit = suit[ctr];
这些是突出显示的错误。 请赐教。我还是个初学者。
答案 0 :(得分:0)
这是因为deck
是类型,而不是变量(没有为其初始化内存)。
我建议不要使用typedef,因为它们会混淆类型并且会使事情变得更加混乱(它们经常被滥用),并且只在{{1}中声明一个名为deck
的变量功能,如:
createdeck()
请注意,您已将//structures
struct card{
int val;
char face;
char suit;
};
...
void createdeck()
{
struct card deck[52];
错误地列为<{1}}
suits
该行上的suit
也不作为变量存在。