繁体   English   中英

查询集成Fortran和C ++代码

[英]Query integrating Fortran and C++ code

我正在尝试将一些C ++代码集成到Fortran中。 我怀疑类型之间的等价性,

是Fortran 整数* 1相当于C ++ bool ?¿如果没有,那么正确的C ++等价类型是什么?¿

非常感谢你提前!

引用此链接

INTEGER(1)类型应该用于大型数组,当内存对于变量而言是非常重要的,这些变量只有-129到127范围内的正,负和零整数值。

所以,我会说它的C/C++等价物是一个signed char 相当于bool是Fortran的logical类型。

编辑:MSB的答案比我的好; 做他建议的事情会更好。

最好的办法是使用Fortran ISO_C_Binding,它提供与C类型匹配的类型。 该方法与编译器和平台无关。 我对C ++类型不太确定,但是如果你确定它们的C等价物就应该是好的。 ISO_C_Binding提供Fortran类型C_BOOL以匹配C类型_Bool。 绑定提供了一长串等效类型。 列表出现的一个地方是gfortran手册的“内在模块”一章。 另请参阅“混合语言编程”一章。 虽然我引用了gfortran手册,但作为Fortran 2003语言标准的一部分,这些功能并不特定于该编译器。

PS评论建议使用int8_t。 Fortran端与ISO C绑定的匹配类型是C_INT8_T。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM