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

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

#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

УКАЗАТЕЛИ

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

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

printf ("%d %d\n",var, &var); 1 12136

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

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

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

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

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

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

val=*ptr; //val==num

*ptr = 10; //num==10

Описание указателей

Мы уже знаем как описываются переменные, массивы. Как же описать указатель! Сложность в том, что переменные разных типов содержат разное число ячеек, но операции с указателями требуют знания отведенной им памяти. Поэтому, при определении указателя, мы описываем, на какой тип переменной она будет указывать, и что это указатель символ *.

int* ptr;

float* pmas;

char* pc;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: