在C语言中支持并使用`fortran`关键字

9

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

C99语言标准,J.5.9小节:

可以在函数声明中使用fortran函数说明符,以指示生成适合FORTRAN的调用或者生成不同的外部名称表示。

这个小节在C11标准中没有改变。

两个标准都没有其他内容关于这个关键字。本节引用了6.7.4小节,函数说明符,这也是它看起来像的,但是唯一的一个是inline,涉及的语言专为它量身定制,如何使用fortran并不明显。

这个关键字包含在“通用扩展”部分中 (!),因此不应期望通用支持,并且实际上并不存在:我使用的GCC 7.2.0未能识别它。

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

1个回答

4

BC4.5编译器适用于DOS/Win16操作系统,支持该关键字。它将函数的调用约定更改为FORTRAN的调用约定。使用方法如下:

extern fortran int FUNCTION(int *a, int *b, int *c);

(FORTRAN 中变量是按引用传递的)。

您还可以这样导出函数以供 FORTRAN 调用:

fortran int FUNCTION2(int *a, int *b, int *c)
{
    /* your code here */
}

我实际上用它来调用QBX(BASIC)的函数,它们几乎使用相同的调用约定。

pascal关键字在这种情况下更好;否则参数将以相反的顺序传入。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接