有些表达式中间可以用逗号。但小弟我用却报错
有些表达式中间可以用逗号。但我用却报错?
例如:

为什么上面cx = x + (i & 3), cy = y + (i >> 2);可以用逗号或分号都可以?
而有些地方我这样用逗号代替分号就报错?请问区分在哪里?谢谢。
------解决思路----------------------
因为逗号表达式在操作数只能写表达式
你的 if (c==1) gt.pool[cx][cy] = sp[i]; 是一个if 语句
语句当然不能摆在只能写表达式的地方
例如:
int i, cx, cy;
for (i = 0; i < 16; ++i) if (sp[i]) {
cx = x + (i & 3), cy = y + (i >> 2);
if (gt.pool[cx][cy])
if (c == 2) gt.pool[cx][cy] = 0; else return 0;
if (c==1) gt.pool[cx][cy] = sp[i];
}
为什么上面cx = x + (i & 3), cy = y + (i >> 2);可以用逗号或分号都可以?
而有些地方我这样用逗号代替分号就报错?请问区分在哪里?谢谢。
------解决思路----------------------
因为逗号表达式在操作数只能写表达式
你的 if (c==1) gt.pool[cx][cy] = sp[i]; 是一个if 语句
语句当然不能摆在只能写表达式的地方