我有一个相当简单的问题:
我想编写一个库(通过.so
文件在其他项目中使用),该库使用特定于C11的_Generic
关键字。如果使用库的项目不需要使用C11标准编译项目,我会很高兴。这可能吗?
答案 0 :(得分:1)
.so文件对_Generic
一无所知,此功能在编译时做出的决定。
您应该担心的是头文件。如果你有"流浪" _Generic
在那里,并且客户端有一个pre-C11编译器,这会崩溃。因此,您必须#if/#else
使用__STDC_VERSION__
标题的{{1}}来保护C11之前的编译器,以便查看此内容。