我做了一个C程序。我制作了一个定义了 go 函数的 go 文件。在 C 程序中,我调用了 go 函数。go 是从 C 调用编译还是解释?
问问题
277 次
3 回答
3
我做了一个C程序。我制作了一个定义了 go 函数的 go 文件。在 C 程序中,我调用了 go 函数
您创建了一个调用 C 函数的 Go 程序(相反的方式尚不可能。)然后您显然再次从 C 调用 Go 函数,这有点奇怪,并且在大多数情况下没有多大意义。请参阅https://stackoverflow.com/a/6147097/532430。
我将假设您使用 gccgo 来编译您的程序。因为如果你使用 Go 的 gc,那么你的程序是用什么语言编写的,就不会有任何混淆。
go 是从 C 调用编译还是解释?
编译好了。gccgo 是 GCC 的 Go 前端。GCC 代表 GNU编译器集合。
于 2015-04-01T09:09:38.600 回答
3
它总是被编译。C 永远不会在没有编译的情况下运行函数。
于 2015-04-01T06:44:31.337 回答
-2
在您的程序中,当您第一次调用 go 函数时,编译器将生成函数调用所需的代码、函数参数的空间、存储有关函数参数类型的详细信息等。如果按照编译器标准一切都正确,则创建目标文件并此外还有其他过程,如链接和所有。所以基本上你不能说它是“是从 C 编译或解释中调用的?”,它是一系列协同工作以使你的程序运行的过程。
于 2015-04-01T06:57:50.443 回答