为什么一元操作员不允许进行复合作业?

时间:2016-04-09 03:33:16

标签: c

我知道在C中不允许使用!= b或a~ = b等复合赋值,但允许a =!b或a = ~b。只是好奇为什么语言是这样设计的?任何具体的技术原因?在最新的编译器中提供了这样的支持? C的这种限制(至少我觉得它是一种限制)使得语言对初学者来说很复杂。这使我们在C中了解了一些这样的功能。

1 个答案:

答案 0 :(得分:0)

定义!=~=可能会造成不必要的混淆,因为某些令牌可以是一元运算符或二元运算符,由上下文决定。例如:a -= b是什么意思,a = a - ba = -b

任何方式,你都不需要它们。 a = !ba = ~b不会导致更多打字,而且很容易理解。