C 共享对象是否向后兼容(标准方式)
Are C Shared Object Backwards Compatible (Standard-Wise)
我有一个很简单的问题:
我想编写一个使用 C11-Specific _Generic
关键字的库(通过 .so
文件在其他项目中使用)。如果使用该库的项目不需要使用 C11 标准编译他们的项目,我会很高兴。这可能吗?
PS:我用 Google 搜索了一下,没有看到答案,我在 phone 上,所以,作为预警,没有 "Possible Duplicates" 列表我的屏幕。
.so 文件对 _Generic
一无所知,此功能在编译时做出决定。
您应该担心的是您的 header 文件。如果你有 "stray" _Generic
并且客户端有一个 C11 之前的编译器,这会崩溃。所以你必须 #if/#else
你 header 的部分 __STDC_VERSION__
来保护 C11 之前的编译器看到这个。
我有一个很简单的问题:
我想编写一个使用 C11-Specific _Generic
关键字的库(通过 .so
文件在其他项目中使用)。如果使用该库的项目不需要使用 C11 标准编译他们的项目,我会很高兴。这可能吗?
PS:我用 Google 搜索了一下,没有看到答案,我在 phone 上,所以,作为预警,没有 "Possible Duplicates" 列表我的屏幕。
.so 文件对 _Generic
一无所知,此功能在编译时做出决定。
您应该担心的是您的 header 文件。如果你有 "stray" _Generic
并且客户端有一个 C11 之前的编译器,这会崩溃。所以你必须 #if/#else
你 header 的部分 __STDC_VERSION__
来保护 C11 之前的编译器看到这个。