Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Блок, относящийся только к системам Майкрософт
В режиме совместимости с ANSI требуется, чтобы компилятор принимал до 509 символов в строковом литерале после объединения. Максимальная допустимая длина строкового литерала в Microsoft C — приблизительно 2048 байтов. Однако если строковый литерал состоит из двух частей, заключенных в двойные кавычки, препроцессор объединяет эти части в одну строку, и для каждой объединенной строки добавляет дополнительный байт к общему количеству байтов.
Например, предположим, что строка состоит из 40 строк с 50 символами в каждой строке (2000 символов) и одной строки с 7 символами и что каждая строка заключена в двойные кавычки. Это значит, что добавляется до 2007 байтов плюс один байт для завершающего нуль-символа, то есть всего 2008 байтов. В объединении дополнительный символ добавляется для каждой из первых 40 строк. В результате мы получаем 2048 байтов. Обратите внимание, что если продолжения строки (\) используются вместо двойных кавычки, препроцессор не добавляет дополнительный символ для каждой строки.
Хотя отдельные строки в кавычках не могут быть длиннее 2048 байтов, объединив строки, можно создать строковый литерал, состоящий приблизительно из 65535 байтов.
Завершение блока, относящегося только к системам Майкрософт