Sna*_*Doc 0 c struct typedef function
我有一个类似于这样的typedef结构:
typedef struct {
int col;
int row;
} move_t;
Run Code Online (Sandbox Code Playgroud)
我正在尝试将一个类型的数组传递move_t给函数作为要填充的排序缓冲区......就像这样:
void generate_valid_moves(int fc, int fr, move_t* moves, int limit);
Run Code Online (Sandbox Code Playgroud)
要么
void generate_valid_moves(int fc, int fr, move_t moves[], int limit);
Run Code Online (Sandbox Code Playgroud)
两者都会产生一个模糊的gcc错误:
moves.h:43: error: expected declaration specifiers or ‘...’ before ‘move_t’
moves.h:887: error: conflicting types for ‘generate_valid_moves’
moves.h:43: note: previous declaration of ‘generate_valid_moves’ was here
Run Code Online (Sandbox Code Playgroud)
我已经尝试删除typedef,只是使它成为一个普通的结构等...都会导致类似的错误.感觉很基本,我知道我错过了一些东西......
我的函数原型和实现的签名绝对匹配......所以错误的一部分甚至更奇怪.
我的目标是创建一个数组move_t,然后将其传递给此函数以填充move_t.然后调用者使用填充的move_t缓冲区填充.
该typedef需求是之前的函数原型是指类型.C代码按顺序处理,在定义之前不能引用名称.因此,如果您没有首先使用结构定义,那么它认为move_t是一个被声明的变量,但它需要一个类型说明符.