【发布时间】:2014-06-08 17:41:40
【问题描述】:
我的意思是这样的:
while(lu = read(d1, buf, sizeof(buf)), lu > 0 )
语法好吗?
【问题讨论】:
-
询问你的编译器,如果是的话。问问你的同事,如果你想知道它是否是好的风格。我不认为是。
标签: c while-loop expression variable-assignment
我的意思是这样的:
while(lu = read(d1, buf, sizeof(buf)), lu > 0 )
语法好吗?
【问题讨论】:
标签: c while-loop expression variable-assignment
语法很好,但语义很差。
换句话说,该代码并没有按照您的想法执行,这使得它有点危险。
由于分配 (=) 的优先级低于比较 (>),因此它不会按照您需要的方式进行评估。
要修复它,请添加括号:
while((lu = read(d1, buf, sizeof buf)) > 0)
另外,请记住 sizeof 不是函数。
【讨论】:
我建议:
while((lu = read(d1, buf, sizeof(buf))) > 0 )
【讨论】: