C++ Программирование в среде С++ Builder 5



             

Предварительные шаги


Прежде всего, для исследования отладчика нам понадобится программа. В листинге 5.1 показана тестовая программа, вызывающая функции DoSomeMath () и DoSort () . Первая из них довольно бессмысленна и включена в программу только для того, чтобы продемонстрировать плавающую арифметику и соглашение _pascal. Вторая представляет собой вариант пузырьковой сортировки, частично реализованный на языке ассемблера.

При создании нового модуля debugC.C автоматически создается заготовка включаемого файла debugC.h, причем C++Builder сразу вводит в него директивы защиты от повторных включений, о которых мы говорили в прошлой главе. Кстати, главный исходный файл консольного проекта называется в 5-й версии Debug, bpf, а не Debug.срр

Листинг 5.1. Тексты программы Debug

/**********************************************************

* * Debug.срр: Главный файл проекта.

*/

#pragma hdrstop

#include <condefs.h>

USEUNIT("debugC.с") ;

#define main

/**********************************************************

* * debugC.h: Заголовок для модуля debugC.с.

*/

#ifndef debugCH

#define debugCH

double _pascal DoSomeMath(double r, double h);

void DoSort(int array[], int n) ;

*endif

/*******************************************

* * debugC.с: Программа для демонстрации отладчика.

*/

#pragma inline

#pragma hdrstop

#include <stdio.h>

#include "debugC.h"

const double Pi = 3.14159265;

#pragma argsused

int main(int argc, char *argv[])

{

double rad, vol;

int i, n = 8;

int iArr[8] = {-1, 23, 7, -16, 0, 11, 24, 3};

rad = 2.0;

vol = DoSomeMath(rad, 3.0);

printf("Volume = %10.6f\n", vol);

DoSort(iArr, n) ;

printf("Sorted array:");

for (i=0; i<n; i++)

printf("%6d", iArr[i]);

printf("\n") ;

return 0;

} /* main */

/************************************************

** Просто чтобы продемонстрировать вызов pascal.

*/

double _pascal DoSomeMath(double r, double h)

{

double s;

s = Pi * r*r;

return s * h;




Содержание  Назад  Вперед