КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Предпроцессор
Основные возможности Перечисления enum Объединения union Пример struct stovar // объявление структуры под именем stovar { int kt; // код товара - целочисленная переменная char nt [20]; // наименование товара - строка из 20 байтов } // конец тела структуры zstovar={1,»Сыр»}; // наименование переменной-записи и значения полей stovar mzstovar [2]; // объявление массива записей типа stovar mzstovar[1].kt=2; // задание значения поля kt второй записи массива printf(«\n%d, %d %s»,zstovar.kt,mzstovar[1].kt,zstovar.nt); // вывод значений Битовые поля задаются в виде: <целочисленный тип> [<имя>]: <ширина в битах (<=64)>; Раполагаются поля в памяти слева направо. Пример. struct vector {int i:2; int:2; unsigned j:4; long k:64;} a,b,c; Объединения соответствуют типам вариантных записей языка Delphi и объявляются подобно структурам. Активным может быть только одно поле. Все поля перекрывают друг друга в памяти. Размер объединения равен размеру наибольшего поля. Пример: union un {int i; float f; char c;} a,b; // объявление объединения a.i=1; Label1->Caption=a.i; // использование поля i a.f=12.34; Label2->Caption=a.f; // использование поля f a.c='w'; Label3->Caption=a.c; // использование поля c Перечисления служат для присвоения имен набору целых чисел (int), что повышает наглядность и надежность задания правильных значений переменной. Объявление имеет вид: enum [<имя перечисляемого типа для объявления переменных>] { <имя 1>[=<значение 1>],...,<имя N>[=<значение N>] } [<список имен перечисляемых переменных>]; По умолчанию значение первого элемента равно нулю, а значение следующего элемента списка на единицу больше. Пример задания имен дням недели, начиная с понедельника: int main(int argc, char **argv) // основная процедура { enum dninedeli {poned=1,vtor,sreda,hetv,pjtn,subb,vosk} den; // дни недели den=vosk; // задание значения перечисляемой переменной den if (den==vosk) printf(«Воскресенье %d день недели», den); getch(); // вывод } В задачи предпроцессора входят: подключение (при необходимости) к данной программе внешних файлов, указываемых директивой #include, и выполнение его директив. 6.2.2. Директива #Include Во многие программы подставляются один или несколько файлов, часто в самое начало кода главной программы main. Появление директив: #include <файл_1> ... #include «файл_n» приводит к тому, что препроцессор подставляет на место этих директив тексты файлов: файл_1 файл_2 файл_n соответственно. Если имя файла заключено в кавычки, то включается файл пользователя. Если имя файла заключено в угловые скобки, то файл входит во внешние библиотеки C++. Приведем список основных библиотек: stdlib.h (стандартная), math.h, math.hpp (математика), SysUtils.hpp (утилиты), time.h (время), ctype.h (обработка символов), string.h (строки), stdio.h, conio.h (ввод‑вывод). 6.2.3. Директива #define С помощью директивы #define, вслед за которой пишутся имя и значение макрооператора, оказывается возможным указать предпроцессору, чтобы он при любом появлении в исходном файле данного имени заменял это имя на соответствующее значение макрооператора (именованные константы (п. 1.1.1)). Пример: #define square (х) ((х)*(х)); /* задает замену символа square (аргумент) на значение (аргумент) * (аргумент) */ Пример: #define рi 3.1415926; /* связывает идентификатор pi со значением 3.1415962 */
Дата добавления: 2014-12-08; Просмотров: 448; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |