在C中支持和使用`fortran`关键字

Ori*_*ion 9 c keyword

在C标准中定义的是一个可选支持的关键字 fortran

C99语言标准,J.5.9节:

fortran函数符可以在函数声明被用于指示适于FORTRAN呼叫应当被产生,或者,对于外部名称不同的表示要被生成。

此部分在C11标准中保持不变。

在这两个标准中,没有任何其他地方可以提及此关键字。本节引用了6.7.4节“函数说明符”,看起来似乎是这样,但唯一的是inline,并且所涉及的语言针对此内容进行了量身定制,并且fortran不清楚如何使用。

关键字(!),包含“公共扩展”一节中,预计不会如此普遍的支持,而事实上,它不存在:我的GCC 7.2.0的副本,不承认它。

由于我似乎无法使用它,
a)fortran在C代码中如何使用关键字?
b)哪些编译器支持/支持此关键字?

Jos*_*hua 4

DOS/Win16 的 BC4.5 编译器支持该关键字。它将函数的调用约定更改为 FORTRAN 的调用约定。使用看起来像这样:

extern fortran int FUNCTION(int *a, int *b, int *c);
Run Code Online (Sandbox Code Playgroud)

(在 FORTRAN 中变量通过引用传递)。

您还可以导出要从 FORTRAN 中调用的函数,如下所示:

fortran int FUNCTION2(int *a, int *b, int *c)
{
    /* your code here */
}
Run Code Online (Sandbox Code Playgroud)

我实际上用它来调用 QBX (BASIC),它使用几乎完全相同的调用约定。关键字pascal更适合此目的;否则争论就会倒过来。