修改error: non-void function does not return a value in all control paths [-Werror,-Wreturn-type] }

c++出现编译错误:

error: non-void function does not return a value in all control paths [-Werror,-Wreturn-type]
}

代码为

int operPriority(char x) {
	if (x == '#')
		return 1;
	else if (x == '$')
		return 2;
	else if (x == '+' || x == '-')
		return 3;
	else if (x == '*' || x == '/')
		return 4;
}

原因分析
不是所以的条件分支都能走到,虽然我们可能限制了x的输入范围,觉得不会有其他情况,但是编译器可是最严谨的,它可不这么认为,因此会给你报错,让你把其他情况都写清楚。
修改

int operPriority(char x) {
	if (x == '#')
		return 1;
	else if (x == '$')
		return 2;
	else if (x == '+' || x == '-')
		return 3;
	else if (x == '*' || x == '/')
		return 4;
	//else一点不能忘记
	else
		return 0;
}

反思
if
else if
else if

else
一定要这样写全了,像编译器一样,严谨一点-。-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值