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 では、配列は固定サイズのみで、sizeof() が配列の数を返すのとは異なります。
わかりやすくするために、この潜在的な混乱を避け、配列名だけで Sizeof(array) を使うのではなく、配列データ型で Sizeof を使って 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-04-03 10:29:33
日本語翻訳:WATANABE Makoto、原文著作者:DrV

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

表示-非営利-継承