我有这种类型的结构:创建一个空的结构
#define SUDOKU_SIZE 9
typedef struct {
int grid[SUDOKU_SIZE][SUDOKU_SIZE];
} sudoku_t;
但是,当我想创建一个:struct sudoku_t sudo;
我得到这个错误:错误:“S”的存储大小不知道
感谢
我有这种类型的结构:创建一个空的结构
#define SUDOKU_SIZE 9
typedef struct {
int grid[SUDOKU_SIZE][SUDOKU_SIZE];
} sudoku_t;
但是,当我想创建一个:struct sudoku_t sudo;
我得到这个错误:错误:“S”的存储大小不知道
感谢
使用typedef
,创建一个新的类型;你可以简单地引用它的名字sudoku_t
(而不是struct sudoku_t
)。因此,而不是写struct sudoku_t s;
sudoku_t s;
。如果由于某种原因,你实际上要创建一个命名结构,降的typedef:
struct sudoku_t {
int grid[SUDOKU_SIZE][SUDOKU_SIZE];
};
int main() {
struct sudoku_t s;
}
好点,OP,如果你想同时使用(带或不带'struct'关键字),可使用'typedef结构sudoku_t {INT电网[SUDOKU_SIZE] [SUDOKU_SIZE];} sudoku_t;' –
这有什么奇怪的有关创建一个命名结构?我们中的一些人喜欢使用结构标签并删除typedefs。 –
@KeithThompson是的,你说得对。我已经删除了这个答案中偏见的措词。 – phihag
我看不出有什么's'.Where是什么呢? –
你的代码中没有'struct sudoku_t'这样的类型。 – AnT