![]() |
1
1
如果你看 utarray.h ,您将看到它定义的所有内容都是宏、一些静态函数和一些typedef;没有公共符号,因此所有内容都应限于当前的编译单元。 换句话说,是的,只要不在同一个文件中同时包含两个头(这可能会导致编译时错误)或在公共API中公开它,就应该是安全的。 也就是说,你标题中的问题的答案是“否”;API中的不兼容更改会破坏向后兼容性。但是有了你在身体里提到的限制,你应该会没事的。 |
![]() |
2
0
围绕utarray的使用,出现了一个罕见但100%可复制的堆栈损坏问题,导致我尝试升级utarray。h、 但在我的公司里,一切都很顺利。 简而言之,答案是否定的,它不是100%向后兼容的。但距离很近。 答案越长,对于我们的应用程序,所需的更改是 极其 琐碎的基本用法没有改变,堆栈损坏问题似乎已经消失。它似乎还与其他较旧的头文件(如uthash)进行了良好的交互。
我发现唯一的界面更改是
编辑:我还没有天真到可以相信1.9.6中有一个导致堆栈损坏的问题,但我并没有完全排除这种可能性,因为我在调试器中仔细检查了大约2个小时的相同的10行代码,并观察每个变量都是正确的。 |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |