18. Добавить в конец файла MyExp.cpp еще один блок, код которого приведен в листинге 4.8. Листинг 4.8
// Блок 15
void f3(){
mm[0] = \0;
sprintf(nn, «%d», (sizeof(char)));
strcat(mm, " Size of type char = ");
strcat(mm, nn);
strcat(mm, «\n»);
sprintf(nn, «%d», (sizeof(wchar_t)));
strcat(mm, " Size of type wchar_t = ");
strcat(mm, nn);
strcat(mm, «\n»);
sprintf(nn, «%d», (sizeof «Hello, Word!»));
strcat(mm, « Size of string \»Hello, Word!\" = ");
strcat(mm, nn);
strcat(mm, «\n»);
mbstowcs(mstr, mm, 256);
szStr = mstr;
}
Результат работы этого блока выводится на экран при нажатии клавиши 3.
ЛитералыЛитералы – это символьные значения переменных и констант, которые записываются в тексте программы. Для типа bool литералами будут выражения true и false, для типа char литералом будет символ, заключенный в одинарные кавычки.
Литералы для целых чисел различаются по системе счисления и могут иметь десятеричную, восьмеричную и шестнадцатеричную форму записи. Десятеричная форма записи выглядит наиболее привычно. И в качестве литералов используются обычные числа. Восьмеричный литерал обязательно начинается с нуля – 00, 02, 077. Шестнадцатеричный литерал начинается с префикса Ох – 0x0, 0x2, 0x3f.
Для явной записи беззнаковых литералов можно использовать суффикс U – 23U, а суффикс L можно использовать для явной записи литерала типа long – 23L. Рекомендуется для записи числовых значений использовать десятеричные литералы, а восьмеричные и шестнадцатеричные литералы применять для записи цепочек битов.
Для записи значений с плавающей точкой используются следующие формы:
? 1.23
? 23
? 0.23
? 1.
? 1.0
? 1.2e10
? 1.23e-10
В записи литералов с плавающей точкой не должно быть пробелов. По умолчанию, литералы с плавающей точкой имеют значение типа double. Если необходимо определить литерал типа float, это можно сделать при помощи суффикса f – 2.9999f.
Void Это фундаментальный тип, который никогда не используется самостоятельно. Не бывает объектов типа void. Этот тип указывает на то, что другой тип, в сочетании с которым он используется, не имеет значения, имеет неопределенное значение или неизвестное значение. В следующем фрагменте кода приводятся примеры применения этого фундаментального типа.void f(); //эта функция не возвращает значение
void* pnt; //это указатель на объект неизвестного типа
void х; //эта запись неверна, объектов типа void не существует
Перечисления При помощи перечислений устанавливается некоторый набор значений, определяемых пользователем. Перечисление объявляется при помощи ключевого слова enum. В качестве элементов перечисления можно определить именованные целые константы:enum {DEC, JAN, FEB};
В этом случае определены три целые константы. Если константы не инициализируются явно, то по умолчанию им присваиваются значения, начинающиеся с нуля и увеличивающиеся на единицу для каждой следующей константы. Таким образом значение DEC будет равно 0, JAN – 1, а FEB – 2. Перечислению можно присвоить имя, как это показано в следующем фрагменте:
enum year{JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC};
Константы в перечислении можно инициализировать значениями, отличными от индексных, которые присваиваются по умолчанию:
enum times{SAVE=10,SLEEP=20,STOP=30};