我有这种类型的结构:
#define SUDOKU_SIZE 9
typedef struct {
int grid[SUDOKU_SIZE][SUDOKU_SIZE];
} sudoku_t;
但是当我想创建一个时:struct sudoku_t sudo;
我收到此错误:错误:'s'的存储大小未知
由于
答案 0 :(得分:5)
使用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;
}