Директива #undef
Директива #undef
Синтаксис:
#undef <идентификатор>
Директива #undef отменяет действие текущего определения #define для <идентификатора>. Чтобы отменить макроопределение посредством директивы #undef, достаточно задать его <идентификатор>. Задание списка параметров не требуется.
Не является ошибкой применение директивы #undef к идентификатору, который ранее не был определен (или действие его определения уже отменено). Это может использоваться для гарантии того, что идентификатор не определен.
Директива #undef обычно используется в паре с директивой #define, чтобы создать область исходной программы, в которой некоторый идентификатор определен.
Пример:
#define WIDTH 80
#define ADD(X, Y) (X)+(Y)
#undef WIDTH
#undef ADD
В этом примере директива #undef отменяет определение именованной константы WIDTH и макроопределения ADD. Обратите внимание на то, что для отмены макроопределения задается только его идентификатор.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Новая директива, начинающаяся с точки
Новая директива, начинающаяся с точки .MODEL <имя> <тип> ([<имя параметра> = <значение>]*)Например, запись.MODEL KT coreвводит модель для связанных катушек индуктивности, имя должно начинаться с K. Если команда также содержит слово core, то используется нелинейная модель.
4. Опережающие описания и подключение подпрограмм. Директива
4. Опережающие описания и подключение подпрограмм. Директива В программе может содержаться несколько подпрограмм, т. е. структура программы может быть усложнена. Однако эти подпрограммы могут располагаться на одном уровне вложенности, поэтому сначала должно идти
R.16.3.4 Область видимости макроимен и конструкция #undef
R.16.3.4 Область видимости макроимен и конструкция #undef После появления макроопределения идентификатор из него считается определенным и остается в текущей области видимости (независимо от правил областей видимости в С++) до конца единицы трансляции или пока его определение
R.16.9 Пустая директива
R.16.9 Пустая директива Команда препроцессора вида#не оказывает никакого
Директива .maxstack
Директива .maxstack При реализации метода непосредственно средствами CIL нужно помнить о специальной директиве, которая называется .maxstack. Как следует из ее названия, директива .maxstack задает максимальное число переменных, которые может вместить стек в любой момент времени при
ДИРЕКТИВЫ ПРЕПРОЦЕССОРА #define, #include, #undef, #if, #ifdef, #ifndef, #else, #endif
ДИРЕКТИВЫ ПРЕПРОЦЕССОРА #define, #include, #undef, #if, #ifdef, #ifndef, #else, #endif Язык Си был разработан в помощь работающим программистам, а им нравится его препроцессор. Этот полезный помощник просматривает программу до компилятора (отсюда и термин "препроцессор") и заменяет
ДРУГИЕ ДИРЕКТИВЫ: #undef, #if, #ifdef, #ifndef, #else И #endif
ДРУГИЕ ДИРЕКТИВЫ: #undef, #if, #ifdef, #ifndef, #else И #endif Эти директивы обычно используются при программировании больших модулей. Они позволяют приостановить действие более ранних определений и создать файлы, каждый из которых можно компилировать по-разному. Директива #undef
Директива #define
Директива #define Синтаксис:#define <идентификатор> <текст>#define <идентификатор> <список параметров> <текст>Директива #define заменяет все вхождения <идентификатора> в исходном файле на <текст>, следующий в директиве за <идентификатором>. Этот процесс
Директива обработки ошибок
Директива обработки ошибок В СП ТС реализована директива #error. Ее формат:#error <текст>Обычно эту директиву записывают среди директив условной компиляции для обнаружения некоторой недопустимой ситуации. По директиве #error препроцессор прерывает компиляцию и выдает
Пустая директива
Пустая директива Для повышения читабельности программ СП ТС распознает пустую директиву, состоящую из строки, содержащей просто знак #. Эта директива всегда
3.12. Директива typedef
3.12. Директива typedef Директива typedef позволяет задать синоним для встроенного либо пользовательского типа данных. Например:typedef double wages;typedef vectorint vec_int;typedef vec_int test_scores;typedef bool in_attendance;typedef int *Pint;Имена, определенные с помощью директивы typedef, можно использовать точно так же, как
7.7. Директива связывания extern "C" A
7.7. Директива связывания extern "C" A Если программист хочет использовать функцию, написанную на другом языке, в частности на С, то компилятору нужно указать, что при вызове требуются несколько иные условия. Скажем, имя функции или порядок передачи аргументов различаются в
9.1.5. Директива extern "C" и перегруженные функции A
9.1.5. Директива extern "C" и перегруженные функции A В разделе 7.7 мы видели, что директиву связывания extern "C" можно использовать в программе на C++ для того, чтобы указать, что некоторый объект находится в части, написанной на языке C. Как эта директива влияет на объявления
Параллельные секции и директива parallel sections
Параллельные секции и директива parallel sections Директива parallel sections обеспечивает параллельное выполнение нескольких операторов, простых или составных. {$omp parallel sections} begin секция 1; секция 2; ...; end; Каждый оператор в блоке begin ... end, следующем за директивой является отдельной
Синхронизация и директива critical
Синхронизация и директива critical Директива critical исключает параллельное выполнение следующего за ней оператора. {$omp critical имя} оператор; Этот оператор образует критическую секцию – участок кода, который не может выполняться одновременно несколькими потоками.Только