gpt4 book ai didi

cross-platform - Ada 有预处理器吗?

转载 作者:行者123 更新时间:2023-12-01 22:56:49 25 4
gpt4 key购买 nike

为了在 C/C++ 中支持多个平台,可以使用预处理器来启用条件编译。例如。,

#ifdef _WIN32
#include <windows.h>
#endif

你怎么能在 Ada 中做到这一点? Ada 有预处理器吗?

最佳答案

您的问题的答案是否定的,Ada 没有内置于该语言中的预处理器。这意味着每个编译器可能有也可能没有,并且没有用于预处理和条件编译之类的“统一”语法。这是故意的:它被认为对 Ada 精神“有害”。

几乎总是有办法解决缺少预处理器的问题,但通常解决方案可能有点麻烦。例如,您可以将特定于平台的函数声明为“单独的”,然后使用构建工具编译正确的函数(项目系统、使用 pragma 正文替换或非常简单的目录系统...将所有 windows 文件放在在/windows/和/linux/中的所有 linux 文件中,并包括平台的适当目录)。

话虽如此,GNAT 意识到有时您需要一个预处理器并创建了 gnatprep。无论编译器如何,它都应该工作(但您需要将它插入到您的构建过程中)。同样,对于简单的事情(如条件编译),您可能只使用 c 预处理器,甚至可以使用自己的非常简单的预处理器。

关于cross-platform - Ada 有预处理器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283893/

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