Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VC_Lect.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
15 Мб
Скачать
☆

4.Макросы и отладка

В данном разделе освещены наиболее актуальные вопросы применения макросов библиотеки MFC для разработки и отладки программ. За более подробными сведениями обращайтесь к разделу «Using Macros for Verification and Reporting» MSDN.

4.1.Макрос trace

TRACE(выражение);

Макрос работает только в отладочной версии приложения (Debug) и не работает в окончательной (Release), чем он, собственно, и удобен. В качестве параметров макроса могут использоваться такие же параметры, как и в стандартных функциях printf(). Таким образом, этот макрос можно использовать для отладочного вывода, который нет необходимости удалять из окончательной версии программы. Макрос, в отличие от printf(), осуществляет вывод в окно Debug.

// пример для TRACE

int nCount = 1;

char sz[] = "one";

TRACE( "Count = %d, Description = %s\n", nCount, sz );

// Вывод в окно Debug: ' Count = 1, Description = one'

Ниже приведены форматные спецификации, которые применяются в С-функциях семейства print и их же можно использовать в макросе TRACE. Для конкретности ниже приведено описание наиболее часто используемой функции printf. Прототип этой функции следующий:

int printf(const char *format [,argument]... );

Как видно из прототипа, функция имеет только один обязательный параметр format и произвольное число необязательных параметров (аргументов). Функция возвращает число выведенных символов или -1 в случае ошибки.

Например, функция

printf (”Value of pi equal %f\n”, pi);

выведет

Value of pi equal 3.141593

Форматная строка может содержать:

непосредственно печатаемые символы;

спецификации преобразования;

управляющие символы.

Каждому аргументу соответствует своя спецификация преобразования:

%d, %i – десятичное целое число;

%f – число с плавающей точкой;

%e,%E – число с плавающей точкой в экспоненциальной форме;

%u – десятичное число в беззнаковой форме;

%c – символ;

%s – строка символов.

В форматную строку также могут входить управляющие символы:

\n – управляющий символ новая строка;

\t – табуляция;

\a – звуковой сигнал и др.

Также в форматной строке могут использоваться модификаторы формата, которые управляют шириной поля, отводимого для размещения выводимого значения.

Модификаторы – это числа, которые указывают минимальное количество позиций для вывода значения аргумента и количество позиций для вывода дробной части числа:

%[-]m[.p]C

где

- – задает выравнивание по левому краю,

m – минимальная ширина поля,

p – количество цифр после запятой для чисел с плавающей точкой и минимальное количество выводимых цифр для целых чисел (если цифр в числе меньше, чем значение р, то выводятся начальные нули),

С – спецификация преобразования (d, i, f и т.д.).

Еще один пример. Функция

printf("\nFormat specifications:\n%10.5d - integer,”

“ \n %10.5f - floating-point \n “

“%10.5e” – scientific format (exponential form)\n”

“%10s - string", 10, 10.0, 10.0, "abc");

выведет

Format specifications:

00010 – integer

10.00000 – floating-point

1.00000е+001 - scientific format (exponential form)

abc – string

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]