Условная компиляция

 

Позволяет компилировать не все части программы. Директивы условной компиляции используются в больших программах.

#if константное_выражение

[фрагмент текста]

[#elif константное_выражение

фрагмент текста]

...

[#else фрагмент текста]

#endif

Результатом вычисления константного_выражения является целое число. Если оно не 0, то выполняется фрагмент текста программы от директивы #if до одной из директив #else, #elif или #endif.

1. #ifdef CI

#include <stdio.h>

#define MAX 80

#else

#include <iostream.h>

#define MAX 132

#endif

 

2. #ifndef – если макроопределение не определено

#ifndef MY_FILE // файл будет компилироваться только один раз

#define MY_FILE //когда макрос не определен

#include “my_fyle”

#endif

 

3. #if SYS == ”IBM”

//похоже на оператор, за ним следует константное выражение

//которое считается истинным, если оно не равно 0

#endif

 

4. Можно исключить блок программы

#ifdef любое имя

*****

#endif

#if defined(__LARGE__)||defined(__HUGE__)

typedef INT long

#else

typedef INT int

#endif

 

УКАЗАТЕЛИ

 

С помощью оператора return в вызываемую программу можно передать только одну величину. Для того, чтобы передать 2 величины надо пользоваться «указателями».

Указатель – некоторое символическое представление адреса.

Память состоит из байтов, каждый из которых пронумерован, начиная с 0, 1, 2 ... Номер – это адрес. В Си есть переменные, которые могут содержать этот адрес – указатели и операция взятия адреса - &.

int pooh=1; // определение и инициализация переменной. pooh – её имя.

printf ("%d %d\n",pooh, &pooh); // на экране: 1 12136

Машинный код команды можно выразить словами. "Выделить 2 байта памяти, присвоить им имя pooh. Поместить в ячейку с адресом 12136 число". Фактический адрес этой переменной 12136, а его символическое представление &pooh.

Значением переменной типа указатель служит адрес некоторой величины. Дадим имя этой переменной ptr; тогда можно написать ptr=&pooh;

В этом случае говорим "ptr указывает на pooh", где ptr-переменная, &pooh-константа.

ptr=&bah; - теперь указывает на bah.

Итог: если за знаком & стоит имя переменной, то результатом опции

&nurse –будет получение адреса переменной nurse,

а если за знаком* следует имя переменной, то результатом программы

nurse=22;

ptr=& nurse; //указатель на nurse

val=*ptr;

будет присвоение значения 22 переменной val.

ptr=&pooh;

val=*ptr; ó val=pooh;

 

Если pbarn=&barn; то *pbarn – это величина, помещенная по адресу &barn

 

 

Операция косвенной адресации *

 

Для доступа к переменной, адрес которой помещен в ptr, используется операция косвенной адресации.

val=*ptr; //val==bah

*ptr = 10; //bah==10

 








Дата добавления: 2016-02-02; просмотров: 788;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.