FreeBASIC マニュアルのトップに戻る

FreeBASIC Sizeof

目次→その他→その他の予約語SIZEOF←オリジナル・サイト

SIZEOF 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

バイトで、変数か型のサイズを返します。

構文:
Sizeof ( variable | DataType )

記述:
Sizeof 演算子は、Integer 値を返します:これは、variableDataType(fbc バージョン >= 1.08 では UDT のデータ項目を含む)が使うバイト数です。

固定長文字列 (固定長 ZstringWstring を含む) で使うと、それらが使用するバイト数が返され、可変長文字列で使用すると、文字列記述子のサイズが返されます。
(結果は、Len とは異なります。FBC バージョン 1.20.0 以降、STRING*N 型の固定長文字列で使用される場合にのみ Len と等しくなります)

Sizeof() と Len() の違い
この部分は、Solbianca さんの、Syntax Error 下記から転載させていただいています。
http://syntaxerror445.blog21.fc2.com/blog-entry-78.html#comment11

1) 固定長文字列
Sizeof()は、その内容+終端子のサイズをバイト単位で返す。
Len()は、その内容のサイズを文字数で返す。Wstring型は2バイト文字を1と数える。

2) 可変長文字列
Sizeof()は、その記述子のサイズをバイト単位で返す(12バイト)。
Len()は、その内容のサイズを文字数で返す。

3) 文字列以外
Sizeof()とLen()は、そのサイズをバイト単位で返す。


同じ範囲で、同じ名前で、ユーザー定義型と見える変数が存在する場合は、ユーザー定義型が変数に優先します。
Sizeof が、ユーザー定義型ではなく、変数をとることを確実にするには、Sizeof に対する引数を括弧で包んで、式とみなされることを強制します。
Sizeof((variable)) のようにです。

注意:
配列と共に使うと、Sizeof は、配列の単一要素のサイズを返します。
これは C での振舞いと異なっています。C では、配列は固定サイズなので、sizeof() は、配列が使っているサイズを返します。
わかりやすくするために、この潜在的な混乱を避けて、Sizeof(array) を使う全体配列よりむしろ、配列要素で Sizeof を直接使うか、Sizeof(array(i))Sizeof(Typeof(array)) を行う配列データ型を使うことを、推奨します。

備考:
逆参照された z/wstring ポインターと共に使われた時、Sizeof は、常に1つの z/wstring 文字によって取り上げられたバイト数を返します。

例:
Print SizeOf(Byte) ' 1を返します
Print Len(Byte)

Print SizeOf(WString)
Print Len(WString)
Sleep


Type bar
    a As Integer
    b As Double
End Type
Dim foo As bar
Print SizeOf (foo)
Sleep


バージョン: 方言差:
QBからの違い:
参照:
その他の予約語に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2024-03-07 06:32:14
日本語翻訳:WATANABE Makoto、原文著作者:DrV

ホームページのトップに戻る

表示-非営利-継承