
No.3ベストアンサー
- 回答日時:
#1です。
バイト数を気にするなら変数宣言の時に、
INTEGER*8 N,K
INTEGER*4 I
REAL*16 A(10),B(10,10)
などのようにバイト数を明示指定すればいい。Fortranのメインターゲットの大規模数値演算のときにバイト長というか有効数値範囲を知らないままで計算するというのはありえないです。
Cは型の弱い言語(型に厳密でない)なので、バイナリ入出力の変数の読み書きにバイト数の指定が必要ですが、型の強い言語だと、変数名さえ書けば長さはコンパイラが知っています。
もちろん他システムとバイナリデータの交換をする時はデータのバイト長を取り決めてそのバイト長で入出力する必要はあります。そういう時は上記のようにバイト長を明示して宣言します。
この回答への補足
お返事ありがとうございます。
Cからプログラミングに入っていたので、型宣言は処理系依存であいまいなものだと思っておりました。
バイト長を明示すればよいということで納得できました。ありがとうございました。
No.2
- 回答日時:
残念ながら、fortran単体では出来ないと思いますね。
オーソドックスなfortranは全てアドレス渡しで、equivalenceやレーベルコモンでトリッキーなことをしない限り、sizeof(関数ではなく、演算子です)が必要になることはないからです。
また、システム記述をするための言語ではないので、ポインタをユーザーが操作するようにはなっていないのが大きいと思います。構造体や共用体を明示的に使うことも出来ない(トリッキーにすることは出来る)し。
sizeof自体、私が使っていた(経験30年、FORTRANで言語処理系を書いたこともある)中では、一度も必要に思ったことはありません。
何をしたいのか書いていただければ、もう少しアドバイスできるかと思います。
この回答への補足
ありがとうございます。
Cであれば同じint型でも処理系によってバイト数が異なるので、Fortranでも同様に処理系に依存すると思っておりました。
そもそもFortranではintegerといえば4バイトと決まっているのでしょうか?
Cのsizeof関数は、fread、fwriteで書き込むときに、型のサイズを知るために使われないですか?
例えば、fread(&i,sizseof(int),n,fp)のようにです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
COBOLのCOMP形式について
-
10Mバイトて文字数に すると何...
-
バイト列とバイナリ列の違いが...
-
UTF-8で5~6バイトになる文字コ...
-
SQLで1バイト、2バイト混在...
-
エクセルシート名の制限を変更...
-
データの取り出し?
-
テキストBOXの入力制限について
-
unicode←→JISコード
-
ワイド文字のバイト数が取得で...
-
バイト境界とは
-
より高速な画像の表示法
-
Excel 1セル当りの文字数が2...
-
エクセルVBA:日付データの変換...
-
メールの件名をデコードしたい
-
C言語でwin32apiを使ってnotepa...
-
stable diffusionのエラー
-
'dataType' 引数を Null にする...
-
Excel VBA メール作成について ...
-
postで送られてきたパラメータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
バイト列とバイナリ列の違いが...
-
エクセルシート名の制限を変更...
-
ピクセル,dpiから容量(バイト...
-
ビットスワップとバイトスワッ...
-
テキストBOXの入力制限について
-
機種依存文字をチェックしたい。
-
「1TB」のHDDに日本語は何字入...
-
C++ Builderで文字列をバイトに...
-
全角半角を調べるライブラリ関...
-
SQLで1バイト、2バイト混在...
-
VB6とSQL Serverの桁の扱い方に...
-
jis x 0208 について
-
VBAでShift-JISのURLエンコード
-
この関数はどのプログラミング...
-
COBOL PICTUREで X,S,Vの意味
-
半角、全角の判別方法
おすすめ情報