当前位置: 首页 > 面试题库 >

Go中的条件编译

缪风史
2023-03-14
问题内容

我试图写一个围棋包装用CGO的ENET。

当我尝试在Mac上编译包装程序时,该库较旧,并且界面略有不同。99%的代码是相同的,只需要更改几个C调用即可。

在Go中处理此类问题的最佳实践是什么?
有什么方法可以进行条件编译或条件导入吗?


问题答案:

Go没有条件编译或条件导入。处理C代码中的类型差异。

[Go]作者是否反对预处理?



 类似资料:
  • 问题内容: 如何在Python中进行条件编译? 使用DEF吗? 问题答案: Python的编译方式与C,C ++甚至Java都不一样,Python文件是“即时”编译的,您可以认为它类似于诸如Basic或Perl的解释语言。1个 您可以仅通过使用if语句来执行与条件编译等效的操作。例如: 您可以对创建类,变量设置以及几乎所有内容执行相同的操作。 模拟IFDEF的最接近方法是使用hasattr函数。例

  • 问题内容: 我在Go 1中使用条件编译遇到了麻烦。 这是我的测试代码。关于“ // + build”约束和“ -tags”标志,我有什么误解吗? main1.go main2.go 运行“执行构建”时,我仍然出现编译错误 问题答案: 您必须跟随一个空白行。 在我的简短搜索中,找不到该文件的记录位置/位置。但消息人士明确指出

  • Rust 有一个特殊的属性,#[cfg],它允许你基于一个传递给编译器的标记编译代码。它有两种形式: #[cfg(foo)] # fn foo() {} #[cfg(bar = "baz")] # fn bar() {} 它还有一些帮助选项: #[cfg(any(unix, windows))] # fn foo() {} #[cfg(all(unix, target_pointer_wid

  • 编译器有一个定义符号列表,定义符号可以通过 !define 定义或使用 /D 命令行开关。这些定义符号可以用于条件编译 (通过 !ifdef 定义) 或用于符号替换 (一种格式简单的宏)。若要用它的值替换一个符号,请使用 ${符号} (如果没有定义符号,那么不会产生转换)。这个转换为“先到先得”,这意味着如果你做了: !define 符号1 ${符号2} 当出现该行时,如果定义了“符号2”它将

  • 条件编译在处理机器依赖、调试以及编译阶段设定特定选项时十分有用。不过要小心条件编译。各种控制很容易以一种无法预料的方式结合在一起。如果使用#ifdef判断机器依赖,请确保当没有机器类型适配时,返回一个错误,而不是使用默认机器类型(使用#error并缩进一级,这样它可以一些老旧的编译器下工作)。如果你#ifdef优化选项,默认情况下应该是一个未经优化的代码,而不是一个不兼容的程序。确保测试的是未经优

  • 问题内容: 如何使用Java格式化Floats,以便仅在其不为零的情况下显示float组件?例如: 编辑:我忘了提-我仍在使用Java 1.4-对不起! 问题答案: 如果使用DecimalFormat并在模式中指定#,则仅在不为零的情况下显示该值。 看到我的问题如何在Java中格式化数字? 样例代码