「文字列型」の版間の差分

提供:AB開発Wiki
ナビゲーションに移動検索に移動
(+Category:言語仕様)
 
(2人の利用者による、間の5版が非表示)
1行目: 1行目:
文字列型とは、文字列を扱うために作られた物です。
文字列型とは、文字列を扱うために作られた物です。
Ver 5(CP1)以前とVer 5(CP2)以降ではコンパイラ内部での解釈方法が異なります。
Ver 5 (CP1)以前とVer 5 (CP2)以降ではコンパイラ内部での解釈方法が異なります。


== String ==
== String ==
9行目: 9行目:
=== サイズ ===
=== サイズ ===


可変長(ただし最小1byte)
配列側は最小1byteの可変長
 
変数側は4Byte固定


=== 備考 ===
=== 備考 ===


==== Ver 5(CP1)以前での扱い ====
==== Ver 5 (CP1)以前での扱い ====


特殊な基本型として認識されていました。
特殊な基本型として認識されていました。


==== Ver 5(CP2)以降での扱い ====
ただし、ヘルプを見る限りでは使用は推奨されていません。
 
==== Ver 5 (CP2)以降での扱い ====
 
クラス化され、オブジェクトとしての振る舞いをするようになりました。詳しくは[[Stringクラス]]をご覧ください。
 
 
== Unicodeの扱い ==
プロジェクトオプションから「Unicode文字セットを使用する」を指定することで、Unicode(UTF-16LE)に対応したアプリケーションを開発できます。マルチバイト文字セット環境との相違点は下記のとおりです。
 
=== マルチバイト文字セット環境 ===
デフォルトです。プロジェクトオプションで「Unicode文字セットを使用する」を指定しなかったとき、単体ソースコードをコンパイルするときはマルチバイト文字セット対応型のアプリケーションが作成できます。
マルチバイト文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxA)。
 
* Char型のサイズ … 1 byte
* リテラル文字列の文字セット … マルチバイト文字セット
 
なお、日本語環境のマルチバイト文字セットは、Windows31-J (CP932, MicrosoftのShift_JIS)です。
 
=== Unicode文字セット環境 ===
Unicode文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxW)。
 
* Char型のサイズ … 2 byte
* リテラル文字列の文字セット … Unicode文字セット


クラス化され、オブジェクトとしての振る舞いをするようになりました。
※AB5のデフォルトがマルチバイトになるか、Unicodeになるかは未定です。


クラス内部では、宣言時にcallocで1byteの配列を成り立たせます。
[[Category:言語仕様|もしれつかた]]
代入時には、reallocとmemcpyで配列を再構成しています。

2007年8月6日 (月) 02:52時点における最新版

文字列型とは、文字列を扱うために作られた物です。 Ver 5 (CP1)以前とVer 5 (CP2)以降ではコンパイラ内部での解釈方法が異なります。

String

概要

符号無し配列

サイズ

配列側は最小1byteの可変長

変数側は4Byte固定

備考

Ver 5 (CP1)以前での扱い

特殊な基本型として認識されていました。

ただし、ヘルプを見る限りでは使用は推奨されていません。

Ver 5 (CP2)以降での扱い

クラス化され、オブジェクトとしての振る舞いをするようになりました。詳しくはStringクラスをご覧ください。


Unicodeの扱い

プロジェクトオプションから「Unicode文字セットを使用する」を指定することで、Unicode(UTF-16LE)に対応したアプリケーションを開発できます。マルチバイト文字セット環境との相違点は下記のとおりです。

マルチバイト文字セット環境

デフォルトです。プロジェクトオプションで「Unicode文字セットを使用する」を指定しなかったとき、単体ソースコードをコンパイルするときはマルチバイト文字セット対応型のアプリケーションが作成できます。 マルチバイト文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxA)。

  • Char型のサイズ … 1 byte
  • リテラル文字列の文字セット … マルチバイト文字セット

なお、日本語環境のマルチバイト文字セットは、Windows31-J (CP932, MicrosoftのShift_JIS)です。

Unicode文字セット環境

Unicode文字セットに対応したWin32API関数が読み込まれます(例: MessageBoxW)。

  • Char型のサイズ … 2 byte
  • リテラル文字列の文字セット … Unicode文字セット

※AB5のデフォルトがマルチバイトになるか、Unicodeになるかは未定です。