Длинные строки в Qt

Ранее я читал, что длина строки в файлах исходного кода C ++ ограничена, значит, больше, чем размер, не может быть скомпилирован. правда да? как вы знаете, в создателе Qt многие строки становятся длинными из-за использования функций Qt, например, для записи строки внутри метки она может быть такой длинной. Итак, что будет, если наша линия станет такой длинной. Это нормально или нужно проделать какие-то трюки?


person Novin Shahroudi    schedule 15.05.2012    source источник
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
comment
Вы не можете использовать оператор + для C-строковых литералов ... только во время выполнения, если они были помещены в строковый класс. Чтобы разбить строковый литерал по строкам, просто закройте цитату и откройте новую в следующей строке: stackoverflow.com/questions/1135841/c-multiline-string-literal - person HostileFork says dont trust SE; 15.05.2012
comment
Что ж, в QString перезаписаны операторы + и ‹< ... и да, вы также можете использовать простой строковый литерал :) - person Derick Schoonbee; 15.05.2012
comment
Правильно, у 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
comment
так это нормально: QString (первая половина длинной строки \ n вторая половина длинной строки)? from \ n Я имел в виду ввод и запись второй строки между кавычками с новой строки! - person Novin Shahroudi; 16.05.2012
comment
@Novin: Ага, как упоминал HostileFork. Это более эффективно, поскольку компилятор будет обрабатывать его как одну строку (время компиляции). - person Derick Schoonbee; 17.05.2012