Слеш ноль разделитель ''
Я видел ''
для использования в качестве разделителя в смешанных двоичных файлах (строки UTF8 + двоичные данные). Может ли кто-нибудь объяснить, что ''
означает или указывает на хорошее место для учебы?
3 ответов
двух символов представление используется в исходном коде C для представления символа NUL, который является (одиночным) символом со значением ASCII 0.
символ NUL используется в строках символов стиля C, чтобы указать, где находится конец строки. Например, строка "Hello"
кодируется как шестнадцатеричные байты:
48 65 6c 6c 6f 00
в этом случае компилятор C автоматически добавляет 00
байт в конце любой строки с двойными кавычками. Если вы написали константу as "Hello"
, тогда компилятор C будет генерировать:
48 65 6c 6c 6f 00 00
Это сокращение от
0
который является восьмеричным символом escape. В общем, вы можете сократить любой восьмеричный побег, за которым не следует восьмая цифра. Это происходит от исходных escape-последовательностей C (\n \r \t \f \v \b 0
где последний является значением символа в восьмеричной нотации; ANSI добавил некоторые и \v
несколько редко в наши дни, и многие другие современные языки не реализуют его).