C中的宏和函数有什么区别?请告诉我一个可以使用宏和功能的应用程序?
宏__GLIBCXX__包含libstdc ++版本的时间戳,例如,来自gcc文档(https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html)
__GLIBCXX__压缩ISO日期格式的libstdc ++当前版本,为无符号长整数。有关特定版本的特定宏的价值的详细信息,请查阅ABI政策和准则附录。
我正在寻找自4.9.0版本以来的所有版本的值(包括4.8.x等较小版本的版本)。
libstdc ++的文档似乎没有提供此信息(它仅提供gcc 4.7.0之前的日期)。
在哪里可以找到的值__GLIBCXX__?有人有吗?
ABI政策和准则附录(https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html)表示
库预定义宏的增量增加。对于3.4.0之前的版本,宏为GLIBCPP。对于更高版本,它是GLIBCXX。(libstdc ++项目在整个源代码中从CPP慷慨地更改为CXX,以允许“ C”预处理器使用CPP宏命名空间。)这些宏定义为库的发布日期,采用压缩ISO日期格式,为无符号长整数。 。
但随后最多只能提供GCC 4.7.0之前的宏值。仍在此处列出特定GCC发布的日期:
https://gcc.gnu.org/releases.html
但是例如,对于发布日期为“ 2014年7月16日”的GCC 4.9.1,ISO日期格式为20140716,其值为__GLIBCXX__20140617(注意已更改7和6)。