总结ifelifelseendif宏之间的嵌套关系

42次阅读

共计 459 个字符,预计需要花费 2 分钟才能阅读完成。

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

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

if elif else endif
if 创建子层 同层逻辑 同层逻辑 同层逻辑
elif 创建子层 同层逻辑 同层逻辑 同层逻辑
else 创建子层 无效 无效 同层逻辑
endif 创建分组层 上一层逻辑 上一层逻辑 上一层逻辑

  示例标注:

#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