Читать «C++: базовый курс» онлайн - страница 334
Herbert Schildt
{
cout << mkstr(Я в восторге от C++);
return 0;
}
Препроцессор C++ преобразует строку
cout << mkstr(Я в восторге от C++);
в строку
cout << "Я в восторге от C++";
Оператор используется для конкатенации двух лексем. Рассмотрим пример.
#include <iostream>
using namespace std;
#define concat(a, b) a ## b
int main()
{
int xy = 10;
cout << concat(x, y);
return 0;
}
Препроцессор преобразует строку
cout << concat (x, y);
в строку
cout << xy;
Если эти операторы вам кажутся странными, помните, что они не являются операторами "повседневного спроса" и редко используются в программах. Их основное назначение — позволить препроцессору обрабатывать некоторые специальные ситуации.
Зарезервированные макроимена
В языке C++ определено шесть встроенных макроимен.
_ _LINE_ _
_ _FILE_ _
_ _DATE_ _
_ _TIME_ _
_ _STDC_ _
_ _cplusplus
Рассмотрим каждое из них в отдельности.
Макросы
Макрос
Время трансляции исходного файла в объектный код содержится в виде строки в макросе
Точное назначение макроса
Компилятор, соответствующий ANSI/ISO-стандарту C++, определяет макрос
Мысли "под занавес"
Мы преодолели немалый путь: длиной в целую книгу. Если вы внимательно изучили все приведенные здесь примеры, то можете смело назвать себя программистом на C++. Подобно многим другим наукам, программирование лучше всего осваивать на практике, поэтому теперь вам нужно писать побольше программ. Полезно также разобраться в С++-программах, написанных другими (причем разными) профессиональными программистами. При этом важно обращать внимание на то, как программа оформлена и реализована. Постарайтесь найти в них как достоинства, так и недостатки. Это расширит диапазон ваших представлений о программировании. Подумайте также над тем, как можно улучшить существующий код, применив контейнеры и алгоритмы библиотеки STL. Эти средства, как правило, позволяют улучшить читабельность и поддержку больших программ. Наконец, просто больше экспериментируйте! Дайте волю своей фантазии и вскоре вы почувствуете себя настоящим С++-программистом!
Для продолжения теоретического освоения C++ предлагаю обратиться к моей книге
Приложение А: С-ориентированная система ввода-вывода