Skip to content

Commit 5a108ef

Browse files
committed
Correct char documentation re: size and signedness
Size and signedness of char documentation changes from one architecture to another. The previous documentation was correct for AVR, but not for SAMD (and other architectures). Here, I've implemented the solution recommended by cmaglie at: arduino/Arduino#4525 (comment)
1 parent afde77c commit 5a108ef

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Language/Variables/Data Types/char.adoc

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ subCategories: [ "Data Types" ]
1717

1818
[float]
1919
=== Description
20-
A data type that takes up 1 byte of memory that stores a character value. Character literals are written in single quotes, like this: 'A' (for multiple characters - strings - use double quotes: "ABC").
20+
A data type used to store a character value. Character literals are written in single quotes, like this: 'A' (for multiple characters - strings - use double quotes: "ABC").
2121

2222
Characters are stored as numbers however. You can see the specific encoding in the link:https://www.arduino.cc/en/Reference/ASCIIchart[ASCII chart]. This means that it is possible to do arithmetic on characters, in which the ASCII value of the character is used (e.g. 'A' + 1 has the value 66, since the ASCII value of the capital letter A is 65). See link:../../../functions/communication/serial/println[`Serial.println`] reference for more on how characters are translated to numbers.
2323

24-
The char datatype is a signed type, meaning that it encodes numbers from -128 to 127. For an unsigned, one-byte (8 bit) data type, use the _byte_ data type.
24+
The size of the `char` datatype is at least 8 bits. It's recommended to only use `char` for storing characters. For an unsigned, one-byte (8 bit) data type, use the link:../byte[byte] data type.
2525
[%hardbreaks]
2626

2727
--

0 commit comments

Comments
 (0)