总结if/elif/else/endif宏之间的嵌套关系

2019-11-14 14:56:09 浏览数 (1)

先前写的一个工具(Qml宏预处理工具)顺便就总结一下if/elif/else/endif之间的嵌套关系,并整理成表。

  从左到右顺序,与之上一个宏定义对比。除去2个无效项,共有14个有效项。

if

elif

else

endif

if

创建子层

同层逻辑

同层逻辑

同层逻辑

elif

创建子层

同层逻辑

同层逻辑

同层逻辑

else

创建子层

无效

无效

同层逻辑

endif

创建分组层

上一层逻辑

上一层逻辑

上一层逻辑

  示例标注:

代码语言:javascript复制
#if 
	#if /* if -> if 创建子层 */
	#elif /* if -> elif 同层逻辑 */
	#else
	#endif
#elif 
	#if /* elif - > if 创建子层 */
	#elif
	#elif
	#endif
#else 
	#if /* else - > if 创建子层 */
	#else
	#endif
#endif 

#if /* endif -> if 创建分组层 */
	#if
		#if
			#if
			#endif 
		#elif /* endif -> elif 上一层逻辑 */
		#else 
		#endif 
	#else /* endif -> else 上一层逻辑 */
	#endif
#endif /* endif -> endif 上一层逻辑 */

0 人点赞