Ранее я читал, что длина строки в файлах исходного кода C ++ ограничена, значит, больше, чем размер, не может быть скомпилирован. правда да? как вы знаете, в создателе Qt многие строки становятся длинными из-за использования функций Qt, например, для записи строки внутри метки она может быть такой длинной. Итак, что будет, если наша линия станет такой длинной. Это нормально или нужно проделать какие-то трюки?
Длинные строки в Qt
comment
Возможный дубликат stackoverflow.com/questions/10519738/source-line-length -limit
- person tinman   schedule 15.05.2012
Ответы (1)
Как сказал жестянщик, есть еще один вопрос, который может дать вам некоторую информацию.
Но учтите это:
Qt до сих пор использовался во многих строках кода (и это количество растет). Так что, за исключением очень особого случая, вам не стоит беспокоиться об этой проблеме. Если вы имели в виду «длинный QLabel», вы все равно можете писать код с переносом строк и использовать оператор «+».
Кроме того, если ваш код написан таким образом, что даже компилятор задыхается, я бы не хотел читать или поддерживать ваш код;)
person
Derick Schoonbee
schedule
15.05.2012
Вы не можете использовать оператор + для C-строковых литералов ... только во время выполнения, если они были помещены в строковый класс. Чтобы разбить строковый литерал по строкам, просто закройте цитату и откройте новую в следующей строке: stackoverflow.com/questions/1135841/c-multiline-string-literal
- person HostileFork says dont trust SE; 15.05.2012
Что ж, в QString перезаписаны операторы + и ‹< ... и да, вы также можете использовать простой строковый литерал :)
- person Derick Schoonbee; 15.05.2012
Правильно, у QString есть операторы ... моя единственная точка зрения заключается в том, что если вы пытаетесь передать строковый литерал в качестве параметра чему-то, что принимает QString, тогда, чтобы получить это добавление, вам нужно будет сгенерировать объект во время выполнения . Так что в итоге вы напишете
QString("first half of long string ") + QString("second half of long string")
. Если вы просто сделаете QString("first half of long string " "second half of long string")
, вы все равно можете разбить строку между константами , но не платить за добавление во время выполнения ... компилятор помещает все символы в строку, как это было бы с длинной константой.
- person HostileFork says dont trust SE; 15.05.2012
так это нормально: QString (первая половина длинной строки \ n вторая половина длинной строки)? from \ n Я имел в виду ввод и запись второй строки между кавычками с новой строки!
- person Novin Shahroudi; 16.05.2012
@Novin: Ага, как упоминал HostileFork. Это более эффективно, поскольку компилятор будет обрабатывать его как одну строку (время компиляции).
- person Derick Schoonbee; 17.05.2012