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

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

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

ifelifelseendif
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 上一层逻辑 */
    原文作者:Qt君
    原文地址: https://segmentfault.com/a/1190000020983667
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞