[英]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.