ZHDA315 September 2026 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1
__even_in_range(x,NUM) 内建函数为编译器提供了一条关于 switch 语句的提示:值 x 始终是 0 到 NUM(含)范围内的偶数值。这使得编译器能够对 x 的取值作出更多假设,从而进行比通常情况下更深入的优化。该内建函数通常用于中断服务程序 (ISR),因为中断向量始终具有固定的取值范围,且始终为偶数值。
然而,__even_in_range() 并不限于 ISR 使用。只要代码能够保证 switch 的控制变量始终为偶数且其取值有上限,该内建函数也可用于代码中的其他 switch 语句。一个例子是某个字节计数器变量,它每次递增 2 而非 1,并且其最大值由代码控制,使其回绕至 0 或 2。