我知道三元运算符可以在always语句和赋值语句中使用。 在always语句中,使用三元运算符而不是if~else时,是否可能在综合或编译过程中出现问题?
如果您能回答哪怕是很小的差异,我将不胜感激。
无论在何处使用,三元运算符 (
A ? B : C
) 的行为都是相同的。它可以用在任何允许表达式的地方。您可能会混淆三元运算符在 B
和 C
表达式之间进行选择的方式,以及 if/else
分支语句 ( if (A) stB; else stC;
) 在两个不同语句之间进行选择的方式。 4 状态 X 值如何传播存在模拟问题,而不是综合问题。
A
未知的情况在两个构造中得到不同的处理。
因为三元运算符用在表达式中,所以它可以同时计算
B
和 C
表达式。如果它们具有相同的值,则可以返回该值作为结果,否则返回未知值。
if/else
构造只能执行一个分支。标准要求当 else
条件未知时执行 A
分支。