在Ares时代总有人提到[]:[]继承失效和include无效的问题,由于[B]:[A]式的继承A必须在B前被读取才能够得到继承,include也是最后读取的覆盖前面的,所以这类问题这往往是因为用户自身对include读取规则不了解所致

一图流附完整样例
上面的图已经拆分了读取层次,最后输出[Section]Key=E 一种典型的错误逻辑是觉得按上面的A include B,D 然后B include C,那么C应当插入到B和D中间,即 C 先插入上层的 B 中,同层中 B 再被 D 覆盖
然而很可惜这东西就不是插入式读取的,而是分层顺序读取的 按照插入式的逻辑,上图应该读取为ABCEDFG,而最后实际输出了 Key=E 显然证明这个顺序是错误的 实际上第 1 层的 A 后面先读自己 include 的 B 和 D 然后第 2 层读 B 的 include C,然后继续第 2 层文件 D 的 include F 和 G 再下一层才读 C include 的 E
(图中已在VSCode中按层次拆分,层次问题应该表达的很明白) 最后顺序为ABDCFGE 简单概括实际读取规则就是:读完一层再读下一层

基于上述 ini 样例的简化版一图流 by 双杀步枪
原文已发布至RA2DIY论坛
https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=24681