gpt4 book ai didi

programming-languages - 无需绑定(bind)代码即可调用C函数的语言

转载 作者:行者123 更新时间:2023-12-04 18:06:20 25 4
gpt4 key购买 nike

在 C 和 C++ 中,我可以包含库中的头文件并直接调用其函数,而无需胶水代码。是否有任何其他语言提供此功能?也许一种编译为 C 的语言可以保留 include 语句和所有函数调用,以便 C 编译器正确编译和链接它们。

最佳答案

除了像 C++ 和 Objective-C 这样的基于 C 的语言,我知道没有其他语言可以直接使用 C 包含 header ,然后直接调用 C 函数。然而,许多语言使与 C 的接口(interface)变得非常容易:

我知道的最好的是:

  • D : extern (C) double sin(double arg); 然后 sin(0.5)
  • Cython : from libc.math cimport sin 然后 sin(0.5)
  • Julia : t = ccall( (:clock, "libc"), Int32, ())

2021 年更新:

  • Rust : extern "C"{ fn sin(input: f64) -> f64; } 然后 sin(0.5)unsafe 上下文中。
  • Go with cgo实际上完全允许所要求的,导入 .h-header 文件并直接从中调用代码。有关详细信息,请参阅链接。即使在 2014 年,这可能也是正确答案。
  • Zig : const c = @cImport({ @cInclude("math.h"); }); 然后 c.sin(0.5)

关于programming-languages - 无需绑定(bind)代码即可调用C函数的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795789/

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