所以我有这样的结构:指针如何与预定义的结构进行交互?
struct state {
int previous[2];
int current[2];
bool pen;
};
typedef struct state state;
在我使用这个作为一个参数的一些功能,例如:
void new_state(&s, char *file, int i, int j){
int new = s -> current[j];
s -> current[j] = operand(byte(i, file)) + s -> current[j];
s -> previous[j] = new;
}
我在一个函数调用这些,其中I定义S作为前“预期的声明说明符或“...”:从状态:
void main_function(char *file){
state s;
display *display = newDisplay(file, 200, 200);
int j = size(file);
for(int i=0; i<j; i++){
if(opcode(byte(i, file)) == 0){
new_state(&s, file, i, 0);
}
else if(opcode(byte(i, file)) == 1){
new_state(&s, file, i, 1);
draw(s, display, file);
}
else if(opcode(byte(i, file)) == 2){
pause(display, operand(byte(i, file)) * 10);
}
else{
new_pen(s);
}
end(display);
}
}
但是,编译我仍然得到错误消息时'令牌,但我不明白为什么。我已经将变量s定义为结构状态的一部分,然后通过使用& s,这给它的地址是正确的吗?
你得到它,因为'无效NEW_STATE(&S,字符*文件,诠释我,诠释J)'完成胡言乱语。函数声明不是函数调用。 – Lundin
请注意,点'.'和箭头' - >'运算符确实非常紧密,并且不应该在它们周围有空格,而不像像''这样的低优先级二元运算符,它们周围应该有空格。是的,这是风格。除了新手代码外,点和箭头周围的空格绝对不常见。 –