【发布时间】:2020-09-18 16:55:59
【问题描述】:
#include<stdio.h>
int main(void)
{
int x=1,y=0;
x>y?printf("Hello World"):return x;
}
为什么会显示错误:“return”之前的预期表达式? 这里有什么需要改变的?
【问题讨论】:
-
请问写这篇文章的目的是什么,而不是
if? -
这是对三进制 (
? :) 的不当使用。三元组期望表达式:本身评估为值的事物。return不会评估任何东西;这是一个控制语句。如果您想有条件地做某事(而不是有条件地选择一个值),请使用完整的if。即使您尝试做的事情有效,它也将是糟糕的形式。 -
我很确定这是不正确的,我没有看到任何 here 说你可以从三元的分支之一返回。
-
帮自己一个忙,避免使用三元运算符。现代编译器擅长优化
if-else语句,因此三元运算符几乎没有用处。在现代嵌入式系统中,关注可读性和质量,而不是效率和空间问题。如果您的程序不适合,则优化空间(在编译器的帮助下)。如果您的程序运行速度太慢或错过计时机会,请再次在编译器的帮助下优化速度。