私は現在、32/64 ビットのすべての主要な OS の BLAS/LAPACK (Fortran ライブラリ) のネイティブ バインディングを Java ライブラリnetlib-javaとして改良しています。
しかし、UNIX と Windows の世界、および Fortran と C の間のデータ型の違いに関係するいくつかの問題にぶつかり始めました。
C 言語ではサイズが明示的に定義されていないため、 FortranとCのデータ型のテーブルはあまり重要ではありません。
Fortran と C の両方の主要な OS のプリミティブ データ型のすべてのビット サイズの標準的なソース (または信頼できるソースを参照して作成できますか?) はありますか?
または、少なくとも、C 型に関しては Fortran 型です。
つまり、テーブルに次の列を入力します (いくつかの列から始めます)。
OS ARCH Language Type Bits
Linux x86_64 C int 32
Linux x86_64 C long 64
Linux x86_64 C float 32
Linux x86_64 C double 64
Linux x86_64 Fortran LOGICAL 32
Linux x86_64 Fortran INTEGER 32
Linux x86_64 Fortran REAL 32
Linux x86_64 Fortran DOUBLE PRECISION 64
Linux x86_64 Java JNI jint 32
Windows x86_64 Fortran INTEGER 32
Windows x86_64 Java JNI jint 64
...
(これが正しいかどうかはわかりません)
jni_md.h
すべての JDK に同梱されているC プリミティブの観点から Java 型を検索することができます。