我有一个相当简单的问题:

我想编写一个库(通过.so文件在其他项目中使用),该库使用C11特定的_Generic关键字。如果使用该库的项目不需要使用C11标准编译其项目,我将非常喜欢。这可能吗?

PS:我在Google上搜索了一下,但没有看到答案,而且我在手机上,因此,作为预警,我的屏幕上没有“可能重复”列表。

最佳答案

.so文件对_Generic一无所知,此功能所做的决定是在编译时进行的。

您应该担心的是头文件。如果您在其中有“ stray” _Generic,并且客户端具有C11之前的编译器,则可能会崩溃。因此,您必须使用#if/#else __STDC_VERSION__标头的一部分来保护C11之前的编译器才能看到此情况。

关于c - 向后兼容C共享对象(标准明智),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27986409/

10-16 00:45