Какова максимально возможная длина строкового литерала в C? Если я не ошибаюсь, в Java и .NET максимально возможная длина 2^31 - 1
.
Максимально возможная длина строкового литерала в C
comment
Зависит от платформы, среды выполнения, компилятора, включает ли это Unicode?
- person t0mm13b   schedule 18.10.2015
comment
Если вам нужно знать, вы, вероятно, делаете что-то не так. Но если вам действительно нужно знать, это как минимум 4095. Компилятору разрешено, но не обязательно принимать больше.
- person n. 1.8e9-where's-my-share m.   schedule 18.10.2015
comment
Почему бы тебе просто не попробовать?
- person SpiderPig   schedule 18.10.2015
comment
@SpiderPig: Потому что знание ограничения, налагаемого одним конкретным компилятором, менее полезно, чем знание того, что требует язык.
- person Keith Thompson   schedule 18.10.2015
comment
port70.net/~nsz/c/c11/n1570.html# 5.2.4.1
- person too honest for this site   schedule 18.10.2015
Ответы (1)
Не существует указанной верхней границы длины строкового литерала.
Стандарт требует, чтобы все реализации поддерживали строковые литералы длиной не менее 4095 символов после конкатенации, но компиляторы могут свободно поддерживать произвольные длинные строковые литералы. (Требование в C90 составляло 509 символов; C99 увеличило его до 4095.)
person
Keith Thompson
schedule
17.10.2015