Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > разрывы в строках (C-style)


Автор: blackofe 6.1.2006, 01:18
знал давно, но только недавно надумал воспользоваться. насколько легальны с точки зрения стандартов, разных компиляторов и предсказуемости разрывы в строках? типа:

Код

int main()
{
    cout << "dfgdfgdfg" "sfgdgslkfdgjsdgf'"   "fsdfsk;jh"  
        "dsdfg sdfg " << endl;

    return 0;
}

или же:

Код

int main()
{
    string s = "dfgdfgdfg" "sfgdgslkfdgjsdgf'"   "fsdfsk;jh"  
        "dsdfg sdfg ";

    cout << s << endl;

    return 0;
}


vc++ это замечательно съедает и корректно отображает. но кроме переносимости (кстати, меня это волнует в последнюю очередь) смущает вопрос, насколько это подвержено ошибкам. потому как хотелось бы что-нибудь вроде этого:

Код

#define DIGITS                    "0123456789"
#define LETTERS                    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define LETTERS_DIGITS            DIGITS LETTERS
#define LETTERS_DIGITS_SYMBOLS    "-./" LETTERS_DIGITS

int main()
{
    cout << LETTERS_DIGITS_SYMBOLS << endl;

    return 0;
}


если сузить проблему, то, наверное, было бы вернее задать вопрос: кто занимается склейкой строк - прекомпилер или компилятор?

Автор: srd 6.1.2006, 07:23
Склейкой строк занимается препроцессор.

Автор: blackofe 6.1.2006, 23:19
спасиб. мне этого знать достаточно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)