在C标准中定义的是一个可选支持的关键字 fortran
C99语言标准,J.5.9节:
该
fortran函数符可以在函数声明被用于指示适于FORTRAN呼叫应当被产生,或者,对于外部名称不同的表示要被生成。
此部分在C11标准中保持不变。
在这两个标准中,没有任何其他地方可以提及此关键字。本节引用了6.7.4节“函数说明符”,看起来似乎是这样,但唯一的是inline,并且所涉及的语言针对此内容进行了量身定制,并且fortran不清楚如何使用。
关键字是(!),包含“公共扩展”一节中,预计不会如此普遍的支持,而事实上,它不存在:我的GCC 7.2.0的副本,不承认它。
由于我似乎无法使用它,
a)fortran在C代码中如何使用关键字?
b)哪些编译器支持/支持此关键字?
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更适合此目的;否则争论就会倒过来。