FortranにいくつかのC++コードを統合しようとしています。 は私がFortranとC++コードを統合するクエリ
はブール C++ に相当Fortranの整数* 1で、タイプ間の等価性と疑いを持って?¿ない場合は、正しいC++同等のタイプは何ですか?¿
中ありがとうございました前進!
FortranにいくつかのC++コードを統合しようとしています。 は私がFortranとC++コードを統合するクエリ
はブール C++ に相当Fortranの整数* 1で、タイプ間の等価性と疑いを持って?¿ない場合は、正しいC++同等のタイプは何ですか?¿
中ありがとうございました前進!
this linkから引用:
INTEGER(1)メモリは負、正のみ有することになる変数のプレミアムは にあるとき、大きなアレイのために使用されるべき入力、及び ゼロ整数値以内-129から127の範囲です。
したがって、C/C++
と同等の数値は、signed char
となります。 bool
に相当するのは、Fortranのlogical
タイプです。
EDIT:M.S.B.の答えは私の方法よりも優れています。あなたは彼が提案したことをやっているほうが良い。
Cタイプに一致するタイプを提供するFortran ISO_C_Bindingを使用することをお勧めします。そのアプローチはコンパイラとプラットフォームに依存しません。私はC++の型についてあまり確かではありませんが、あなたがCの同等のものを確信しているなら、あなたは良いはずです。 ISO_C_BindingはFortran型C_BOOLを使用して、C型_Boolに一致します。バインディングは、同等の型の長いリストを提供します。一覧が表示される1つの場所は、gfortranマニュアルの「組み込みモジュール」の章にあります。また、「混合言語プログラミング」の章も参照してください。 Fortran 2003の言語標準の一部としてgfortranのマニュアルを引用してきましたが、これらの機能はコンパイラに特有のものではありません。
P.S.コメントは、int8_tの使用を示唆しています。 Fortran側でISO Cバインディングを使用するマッチングタイプはC_INT8_Tです。
ok、おかげさまで私は混乱しました。私は 'char'で試してみるつもりです。 – horstmann
マルチバイトの 'char'-sを持つシステムが存在する可能性があるので、同等のものは' int8_t'です。 –
ああ、intX_t型については知りませんでした、ありがとう! –