Объявление структур, объединений и перечислений
Стр 1 из 14Следующая ⇒ Основные этапы развития языка Первые версии языка программирования Си++ (тогда он назывался "Си с классами") были разработаны в начале 80-х годов Бьярном Страуструпом, сотрудником знаменитой AT&T Bell Labs, где ранее были разработаны такие шедевры программирования, как операционная система UNIX и язык программирования Си.
Комментарии Часто бывает полезно вставлять в программу текст, который предназначается в качестве комментария только для читающего программу человека и игнорируется компилятором в программе. В C++ это можно сделать одним из двух способов.
Символы /* начинают комментарий, заканчивающийся символами */. Это наиболее полезно для многострочных комментариев и изъятия частей программы при редактировании, однако следует помнить, что комментарии /* */ не могут быть вложенными. Символы // начинают комментарий, который заканчивается в конце строки, на которой они появились.
Константы Константа — это переменная, которую необходимо обязательно инициализировать и которая после этого не меняет своего значения. Числовые константы в C делают с помощью #define, и это неплохо работает, хотя и имеет свои минусы. Константы всех остальных типов в Cи используют редко. В Си++ константы и всё, с ними связанное, получило религиозный статус с приходом классов. Чем отличаются константы Си++ от констант Си? …А главное отличие — их теперь можно использовать! Например, можно написать так: const int N = 10;int A [N];В Си этого сделать было нельзя. А раз константы можно использовать, отчего же этого не делать? Они многим лучше, чем #define:
Встраиваемые функции Встраиваемые функции В Си++ введено слово inline, означающее рекомендацию компилятору сделать функцию встраиваемой, то есть вместо генерации вызывающего её кода подставлять непосредственно её тело. Помимо "рекомендации", стандарт закрепляет за словом inline требование (а следовательно, и разрешение) описывать функцию в каждой единице трансляции, в которой она используется, что, собственно, и играет ключевую роль в вопросе встраивания. Так например, если написать inline double Sqr(double x) {return x*x;}то Sqr(x) будет (почти во всех реализациях) вычисляться так же быстро, как x*x, но x предварительно приводится к типу double. По сути, Sqr(x) будет заменено на что-то вроде (double y=x, y*y), если бы такие выражения были разрешены. Встроенные функции обладают: они приводят к типу, они знают об области видимости, они могут содержать условные операторы, они могут быть (перегруженными, или функциями-членами, или членами пространств имён, или функциями-друзьями, или задаваться шаблонами, или быть параметрами шаблонов.
СИ: Для защиты программы от ошибок связанных с макроопределениями были введены встраиваемые функции: inline-ф-ции. #define SQR(x) (x)*(x) Встраиваемая функция – её код прописывается непосредственно вместо вызова С++: Ключевое слово inline inline double SQR(double a) {return a*a} Определения должны располагаться в том же файле перед вызовом другой функции. Они должны быть очень небольшого размера. Если содержат if(), for, while...
Объявление структур, объединений и перечислений Структуры языка C++ представляют поименованную совокупность компонентов, называемых полями, или элементами структуры. Элементом структуры может быть:
Объединение позволяет размещать в одном месте памяти данные, доступ к которым реализуется через переменные разных типов. Использование объединений значительно экономит память, выделяемую под объекты. При создании переменной типа объединение память под все элементы объединения выделяется исходя из размера наибольшего его элемента. В каждый отдельный момент времени объединение используется для доступа только к одному элементу данных, входящих в объединение. Так, компилятор Visual C++ выделит 4 байта под следующее объединение: union unionA { char ch1; float f1;} a1={ 'M' };
Перечисление, или перечислимый тип определяет множество, состоящее из значений, указанных через запятую в фигурных скобках. Перечисление задает для каждого мнемонического названия в указываемом множестве свой индекс. Перечисление может иметь следующее формальное описание: enum имя_типа {список_значений} список_объявляемых_переменных;enum имя_типа список_объявляемых_переменных;enum (список_элемент=значение);Перечислимый тип описывает множество, состоящее из элементов-констант, иногда называемых нумераторами или именованными константами.
Значение каждого нумератора определяется как значение типа int. По умолчанию первый нумератор определяется значением 0, второй - значением 1 и т.д. Для инициализации значений нумератора не с 0, а с другого целочисленного значения, следует присвоить это значение первому элементу списка значений перечислимого типа.
Объявление переменных В любом месте программы, важно лишь то, чтобы переменная была объявлена до ее использования. Переменные типа int могут иметь размер 2 или 4 байта в зависимости от компилятора и системы компьютера(16 или 32-разрадная). Перед тем как использовать переменную в C++ надо ее объявить. Для этого указывается тип переменной и ее имя,например: int a; Можно объявить несколько переменных одногог типа в одной строке: int a, b, c; Можно инициализировать(присвоить значение) переменной при объявлении: int a, b=1, c=10, d;при попытке присвоить переменной значение превышающее максимально допустимое,то достигнув максимального значения отсчет начинается с минимального значения. Ссылки
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|