关于数据结构与算法分析的一点问题

void MoveToFront(int a[]){
int n=0,i;
int val;
while(int val = GETNEXT() != DONE){
for(i=0;i if(a[i]==val)break;
if(i==n)a[n]=val;
while(i>0)
swap(a[i],a[i-1]);
}
}
关于这个算法,我不知到int val = GETNEXT() != DONE这一句什么意思,我的书是张铭翻译的数据结构与算法分析c++版

可以拆开来看:

int val = GETNEXT()
val != DONE

也就是先把GETNEXT()赋给val, 再判断val值是否等于DONE

去看看包含的头文件中有没有宏定义