该计划旨在帮助我的学生学习西班牙语。我已经得到了很多帮助。我在使用编译器时遇到问题。错误是:
1)问题未命名类型
2)s_questions未申报(首先使用此功能)
是否可以轻松解决这些问题,或者代码结构是否存在一些大问题?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define arrsize(a) (sizeof(a)/sizeof(a[0]);
struct Question
{
char quiz[130];
char answer1[20];
char answer2[20];
char answer3[20];
char answer4[20];
int correctAnswer;
bool used;
}
static Question s_questions[]={
{
"Que significa la palabra 'ser'\n",
"1. to do",
"2. to be",
"3. to make",
"4. to understand",
2,
false
},
答案 0 :(得分:2)
Question
不是代码中的有效类型。 struct Question
是。struct Question
定义后,您错过了分号。arrsize()
宏中有一个额外的分号。并且缺少括号。bool
,您必须#include <stdbool.h>
。s_questions
。#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define arrsize(a) (sizeof(a)/sizeof(a[0]))
struct Question
{
char quiz[130];
char answer1[20];
char answer2[20];
char answer3[20];
char answer4[20];
int correctAnswer;
bool used;
};
static struct Question s_questions[] = {
{
"Que significa la palabra 'ser'\n",
"1. to do",
"2. to be",
"3. to make",
"4. to understand",
2,
false
},
};
答案 1 :(得分:1)
简单,第一点 - 你错过了结构末尾的半可乐
struct Question
{
char quiz[130];
char answer1[20];
char answer2[20];
char answer3[20];
char answer4[20];
int correctAnswer;
bool used;
};
使用它。 另一点是你要使用&#34; struct Question&#34;,Ex -
struct Question foo;
否则,请使用此typedef
typedef struct
{
char quiz[130];
char answer1[20];
char answer2[20];
char answer3[20];
char answer4[20];
int correctAnswer;
bool used;
} Question;
现在你可以使用,
问题q;
答案 2 :(得分:1)
在C中,必须使用struct
关键字声明struct
类型变量。
所以改变这一行:
static Question s_questions[]={
到
static struct Question s_questions[]={
此外,在定义struct
,union
或enum
类型后,您必须在结束括号后添加分号。
struct Question
{
char quiz[130];
char answer1[20];
char answer2[20];
char answer3[20];
char answer4[20];
int correctAnswer;
bool used;
}; //right here