当从C调用go程序时,它是编译的还是解释的?

当从C调用go程序时,它是编译的还是解释的?,c,go,compilation,interpretation,C,Go,Compilation,Interpretation,我做了一个C程序。我制作了一个go文件,定义了go函数。 在C程序中,我调用了go函数。从C调用go是编译的还是解释的?它总是编译的。C永远不会在没有编译的情况下运行函数。在您的程序中,当您第一次调用go函数时,编译器将生成函数调用所需的代码、函数参数的空间、存储函数参数类型的详细信息等。 如果按照编译器标准,一切都是正确的,那么将创建对象文件,并且还有其他过程,如链接和all。 因此,基本上你不能说它是“从C编译的or解释的go调用的”,它是一系列的过程,它们一起工作使你的程序运行 我做了一个

我做了一个C程序。我制作了一个go文件,定义了go函数。
在C程序中,我调用了go函数。从C调用go是编译的还是解释的?

它总是编译的。C永远不会在没有编译的情况下运行函数。

在您的程序中,当您第一次调用go函数时,编译器将生成函数调用所需的代码、函数参数的空间、存储函数参数类型的详细信息等。 如果按照编译器标准,一切都是正确的,那么将创建对象文件,并且还有其他过程,如链接和all。 因此,基本上你不能说它是“从C编译的or解释的go调用的”,它是一系列的过程,它们一起工作使你的程序运行

我做了一个C程序。我制作了一个go文件,定义了go函数。在C程序中,我调用了go函数

你做了一个调用C函数的Go程序(另一种方法还不可能),然后你又从C中调用了Go函数,这有点奇怪,在大多数情况下没有多大意义。看

我假设您使用gccgo来编译程序。因为如果您使用Go的gc,那么就不会有任何关于您的程序是用什么语言编写的混淆

从C调用go是编译的还是解释的


已经编译好了。gccgo是GCC的前端。GCC代表GNU编译器集合。

Go总是被编译。@Volker@undefinedbehaviour:请停止。你的评论没有帮助,而且链接没有任何用处。没有人询问其他的实现,当然他们可以做一些不同的事情。@JimB对不起。我只是提供了与无效断言相反的证据。我相信,如果人们不知道真相就到处乱跑会更好。可能也会更有用。“C中的任何程序都会经过编译过程”--解释Ch、Cling和Cint。@未定义的行为您的这些都是C语言的奇怪实现,并不代表该语言。@FUZxxl该语句无效,因为存在不正确的EDGECASE。这些EdgeCase是否奇怪与该语句的有效性无关。@UnfinedBehaviour声明Ch、Cling和Cint不是C语言的代表性实现?我看不出那句话有什么不对。解释C肯定很奇怪。@fuzzxl No.“C中的任何程序都会经过编译过程”的说法是有缺陷的,不管EdgeCase有多么奇怪,它们仍然会导致引用无效。这就是你们争论的问题,对吗?否则,你就用无关紧要的废话劫持了我的观点。