gpt4 book ai didi

c - ISO C90/99 检查编译器特定函数是否存在

转载 作者:行者123 更新时间:2023-11-30 17:39:13 24 4
gpt4 key购买 nike

所以我正在编写可移植的嵌入式 ansi C 代码,试图支持多个编译器和硬件目标。每个编译器/硬件供应商都支持不同的 math.h 函数。有些仅支持 C90,有些支持 C99 的子集,有些支持 C99 的全套。

我正在尝试找到一种方法来检查预处理器期间是否存在给定函数,以便在不存在时可以使用自定义宏。一些供应商在 math.h 中有 extern 函数,一些供应商使用 #define 重新映射到某些内部调用。有没有一段代码可以判断它是#define 还是 extern 函数?我可以使用 #ifdef 进行定义,但是实际的函数调用又如何呢?

最佳答案

通常的解决方案是查看预处理器本身定义的宏,或者作为 -D 定义传递到构建过程中,这些定义标识您正在运行的编译器和平台,并使用这些加上您对每个环境配置代码所需的特殊帮助的了解。

我想您可以编写一系列测试 .c 文件,尝试编译它们,查看返回的错误代码,然后使用它们设置适当的 -D 标志...但是我'我不相信这会更干净。

关于c - ISO C90/99 检查编译器特定函数是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com