gpt4 book ai didi

跨平台访问 C 常量

转载 作者:行者123 更新时间:2023-11-30 17:31:57 26 4
gpt4 key购买 nike

是否有跨平台(即跨 Linux、BSD 和 OS X,最好是所有 POSIX)我可以纯粹基于字符串 以编程方式访问诸如 O_RDWR 之类的常量>“O_RDWR”?我正在编写一些(非 C)代码,这些代码与跨平台的 C 函数进行互操作,并且需要使用正确的参数调用,例如 open(2) - 但我无法保证本地系统将其常量设置为什么。

我本质上是在寻找类似 get_constant_value("O_RDWR") -> "02" 的内容。

编辑:我目前有一个非常令人讨厌的黑客:直接调用预处理器并检查输出。

printf "#include <fcntl.h>\nO_RDWR" | cpp | tail -n 1

最佳答案

不,到今天为止还没有这样的事情。在 C# 中,这称为反射。有传言称 C++ 委员会正在讨论 C++14 的反射。一旦被采用,您可以预期 1-3 年后编译器将支持它。

如果您需要的常量数量有限,您可能需要编写自定义代码来进行翻译。

关于跨平台访问 C 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24399992/

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