「文字列型」の版間の差分
提供: AB開発Wiki
ナビゲーションに移動検索に移動30行目: | 30行目: | ||
詳しくは[[String クラス]]へ | 詳しくは[[String クラス]]へ | ||
+ | |||
+ | |||
+ | == Unicodeの扱い == | ||
+ | プロジェクトオプションから「Unicode文字セットを使用する」を指定することで、Unicode(UTF-16)に対応したアプリケーションを開発できます。マルチバイト文字セット環境との相違点は下記のとおりです。 | ||
+ | |||
+ | === マルチバイト文字セット環境 === | ||
+ | デフォルトです。プロジェクトオプションで「Unicode文字セットを使用する」を指定しなかったとき、単体ソースコードをコンパイルするときはマルチバイト文字セット対応型のアプリケーションが作成できます。 | ||
+ | マルチバイト文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxA)。 | ||
+ | |||
+ | * Char型のサイズ … 1 byte | ||
+ | * リテラル文字列の文字セット … マルチバイト文字セット | ||
+ | |||
+ | === Unicode文字セット環境 === | ||
+ | Unicode文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxW)。 | ||
+ | |||
+ | * Char型のサイズ … 2 byte | ||
+ | * リテラル文字列の文字セット … Unicode文字セット | ||
+ | |||
+ | ※AB5のデフォルトがマルチバイトになるか、Unicodeになるかは未定です。 |
2007年2月15日 (木) 16:21時点における版
文字列型とは、文字列を扱うために作られた物です。 Ver 5(CP1)以前とVer 5(CP2)以降ではコンパイラ内部での解釈方法が異なります。
String
概要
符号無し配列
サイズ
配列側は最小1byteの可変長
変数側は4Byte固定
備考
Ver 5(CP1)以前での扱い
特殊な基本型として認識されていました。
ただし、ヘルプを見る限りでは使用は推奨されていません。
Ver 5(CP2)以降での扱い
クラス化され、オブジェクトとしての振る舞いをするようになりました。
クラス内部では、宣言時にcallocで1byteの配列を成り立たせます。
代入時には、reallocとmemcpyで配列を再構成しています。
詳しくはString クラスへ
Unicodeの扱い
プロジェクトオプションから「Unicode文字セットを使用する」を指定することで、Unicode(UTF-16)に対応したアプリケーションを開発できます。マルチバイト文字セット環境との相違点は下記のとおりです。
マルチバイト文字セット環境
デフォルトです。プロジェクトオプションで「Unicode文字セットを使用する」を指定しなかったとき、単体ソースコードをコンパイルするときはマルチバイト文字セット対応型のアプリケーションが作成できます。 マルチバイト文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxA)。
- Char型のサイズ … 1 byte
- リテラル文字列の文字セット … マルチバイト文字セット
Unicode文字セット環境
Unicode文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxW)。
- Char型のサイズ … 2 byte
- リテラル文字列の文字セット … Unicode文字セット
※AB5のデフォルトがマルチバイトになるか、Unicodeになるかは未定です。