【发布时间】:2012-12-09 18:07:29
【问题描述】:
我创建了这个简单的程序来自动生成要在 Avisynth scipt 中使用的帧序列:
#include <stdio.h>
int main(void) {
const int step = 3;
const int arr[] = {31997, 31998, 32001};
int i, ii = 0;
for(i = 32002; i <= 32121; i += step, (sizeof(arr)/sizeof(int) - 1 ) != ii ? ++ii : ii = 0) {
printf("freezeframe(%d,%d,%d)\n", i, i + step, arr[ii]);
}
return 0;
}
在 GCC 4.6.2 中使用 MinGW,我收到此错误:需要左值作为赋值的左操作数。
通过在 ii=0 周围使用括号即可轻松解决该问题。但是,我不明白为什么这是一个错误。赋值运算符不应该先求值吗?
【问题讨论】:
-
写这样的代码,你活该受苦。
-
@DavidHeffernan 我知道。这只是为了手头的一项简单任务。
标签: c operator-precedence