русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Большинство директив препроцессора можно использовать в любом месте программы, при этом их действия распространяются от того места, где они используются до конца файла.


Дата добавления: 2014-04-05; просмотров: 624; Нарушение авторских прав


 

 

Список директив препроцессора (все начинаются с #).

# include –включает в исходный текст программы текстовый файл (работает только с исходным кодом)

>- включение происходит из стандартной библиотеки текстовых файлов

“ ”– файл сначала используется в исходном каталоге, а затем в стандартной библиотеке

# define – задаёт макроподстановки и определяет имена для компилятора

# undef – отменяет #define

# if # elif # endif # ifdef # ifndef директивы условной трансляции - позволяют формировать различный код, который поступает к компилятору, что способствует переносимости программы.


# pragma- позволяет настраивать компилятор с учётом специфических особенностей компьютера или ОС.


# error – включается между #if и #endif для проверки какого-либо условия на этапе компиляции. При выполнении такого условия компилятор выдаёт сообщение, указанное в #error, и восстанавливается.

Лучше избегать использование директив препроцессора.

1. #define - задаёт макроподстановку.

-идентификатор_макро

-тело_макро

Препроцессор просматривает исходный текст, заменяет каждое вхождение идентификатор_макро на тело_макро.

#define First 1

{

Main ()

If (n== First) // if (n==1)

}

#define False 0

#define True ! False

 

Можно также работать с функциями:

#define SQUARE(x) x*x

Main()

int z=2;

y=SQUARE(z+1); //y примет значение 9

#define

Если тело_макро пустое, то идентификатор_макро будет заменён на пробел.

 

Предопределённые идентификаторы.

_ _cplusplus - исходный текст должен компилироваться как C++, а не C

_ _ DATE_ _ - во время компиляции преобразовывается в строку, заключая в кавычки, содержащую дату компиляции.

_ _FILE_ _ - вместо FILE подставляется строчка с именем файла, с учётом полного пути



_ _LINE_ _ - содержит в себе номер текущей строки

_ _TIME_ _ - время последней компиляции

cout << “Error in”<<_ _FILE_ _ #define

<<”str”<<_ _LINE_ _<<

<<”cur time”<<_TIME_;

Диагностический макрос (микрокоманда) assert.

Макрос assert имеет вид: assert (выражение)

Позволяет программисту отследить не предусмотренные задачей ситуации во время выполнения программы.

assert (x<0)

assertion failed: x<0; file…;

line…….;

2. #undef – отмена использования #define

#define MESSAGE “hello”

cout<<MESSAGE;

#undef MESSAGE

cout<<MESSAGE; // выдаст ошибку

#ifdef MESSAGE

#else

#define MESSAGE “hello”

#endif

#if defined(_Win32)

Typedef ind int 32;

#else

Typedef long int 32;

#endif

int 32 m=1; // 32 разряда

3. #include – получаем доступ к стандартной библиотеке

 

#include

std lib user files

general.h general.cpp func1.cpp func2.cpp

#include “general.h” #include “general.cpp” #include “func1.cpp” #include “func2.cpp”

 

Указатели.

Указатель – переменная, содержащая адрес другого объекта си программы.

Если переменная содержит адрес некоторого другого объекта, то говорят, что переменная указывает на этот объект.

Виды указателей

на объект на функции

-указатели

-базовые типы

-на массивы

-struct, union, class…

int * pn; //объявим указатель на тип данных int

int *pn; то же

int* pn; самое

 

Замечание:



<== предыдущая лекция | следующая лекция ==>
Continue | Объектом, на которые указывают указатели, может быть как одиночная переменная базового типа, так и первый элемент одномерного массива.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.038 сек.