Difference between revisions of "Character and string types"
(→WideChar: utf16 cannot encode all unicode code points in 1 2byte unit) |
Jwdietrich (talk | contribs) |
||
Line 57: | Line 57: | ||
== String == | == String == | ||
− | The type '''string''' may refer to '''ShortString''' or '''AnsiString''', depending from the {$H} switch. If the switch is off ({$H-}) then any string declaration will define a '''ShortString'''. If it is on ({$H+}) '''string''' without length specifier will define an '''AnsiString''', otherwise a '''ShortString''' with specified length. | + | The type '''string''' may refer to '''ShortString''' or '''AnsiString''', depending from the {$H} switch. If the switch is off ({$H-}) then any string declaration will define a '''ShortString'''. It size will be 255 chars, if not otherwise specified. If it is on ({$H+}) '''string''' without length specifier will define an '''AnsiString''', otherwise a '''ShortString''' with specified length. |
+ | |||
+ | == ShortString == | ||
+ | |||
+ | Short strings have a maximum length of 255 characters. The length is stored in the character at index 0. | ||
+ | |||
+ | {| class="wikitable" style="text-align:center; width:100px" | ||
+ | |- | ||
+ | | style="width: 20%;" | #3 || style="width: 20%;" | a || style="width: 20%;" | b || style="width: 20%;" | c | ||
+ | |} | ||
+ | |||
+ | ==== Reference ==== | ||
+ | * [http://www.freepascal.org/docs-html/ref/refsu11.html FPC ShortString documentation] | ||
+ | |||
[[Category: FPC]] | [[Category: FPC]] | ||
[[Category: RTL]] | [[Category: RTL]] | ||
[[Category: Data types]] | [[Category: Data types]] |
Revision as of 16:31, 28 December 2013
Free Pascal supports several types of characters and strings.
AnsiChar
A variable of type AnsiChar is exactly 1 byte in size, and contains one ASCII character.
a |
Reference
WideChar
A variable of type WideChar is exactly 2 bytes in size, and contains one (part of) Unicode character in UTF-16 encoding. Note: it is impossible to encode all Unicode code points in 2 bytes. Therefore, 2 WideChars may be needed to encode a single code point.
a |
Reference
PChar
A variable of type PChar is basically a pointer to a Char type, but allows additional operations. PChars can be used to access C-style null-terminated strings, e.g. in interaction with certain OS libraries or third-party software.
a | b | c | #0 |
^ |
Reference
PWideChar
A variable of type PWideChar is a pointer to a WideChar variable.
a | b | c | #0 | #0 | |||
^ |
Reference
String
The type string may refer to ShortString or AnsiString, depending from the {$H} switch. If the switch is off ({$H-}) then any string declaration will define a ShortString. It size will be 255 chars, if not otherwise specified. If it is on ({$H+}) string without length specifier will define an AnsiString, otherwise a ShortString with specified length.
ShortString
Short strings have a maximum length of 255 characters. The length is stored in the character at index 0.
#3 | a | b | c |