Programmirovanie_-_1_kurs / Лекции (опорный конспект)
.pdf11.4. Позиционирование (3)
2)
131
12. Модульная программа
•Исходные файлы проекта:
–заголовочные файлы (.h)
–файлы реализации (.cpp)
lab.cpp
array.h
array.cpp
#include "array.h"
void sort(int* A, int n)
{
for (int i=0; i<n-1; i++)
{
int min_ind = i; int min_val = A[i];
for (int j=i+1; j<n; j++) if (A[j]<min val)
{
min_ind = j; min_val = A[j];
}
A[min_ind] = A[i]; A[i] = min_val;
}
}
void print(int* A, int n)
{
for (int i=0; i<n; i++) std::cout << A[i] << " ";
}
132
12.1.Спецификатор extern
•Спецификатор extern указывает, что идентификатор уже был определен в другом месте программы
lab.cpp
unit.h
unit.cpp
133
12.2.Спецификатор static
•Спецификатор static используется для объявления статических переменных
lab.cpp |
unit.cpp |
#include "unit.h"
void main()
{
f( ; f(); f(); getch();
}
unit.h
134
12.3. Этапы создания исполнимой программы
135
13.Параметры командной строки
•Интерфейс командной строки позволяет передать в вызываемую программу набор параметров
2)
1)
136
13.1. Переадресация стандартного ввода-вывода
•(>) переадресация стандартного вывода на заданный файл
•(<) переадресация стандартного ввода на заданный файл
3)c:\>myapp < in.txt Hello, world
|
|
|
|
|
Hello, world |
|
|
|
|
|
|
|
Hell |
world |
|
|
|
|
|
|
Hello, world |
|
|
|
|
|
|
|
Hello, world |
|
|
|
|
|
|
|
Hello, world |
|
|
|
|
|
|
|
Hello, world |
|
|
|
|
|
|
|
Hello, world |
|
|
|
|
|
|
|
Hello, world |
|
|
|
|
|
|
|
Hello, world |
|
|
1) c:\>myapp |
2) |
|
4) |
|
|
|
|
|
|
|
|
|
|||
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hello, world |
|
|
Hello, world |
|
|
Hello, world |
|
|
Hello, world |
137 |
|
Hello, world |
||
|
14.Директивы препроцессора
14.1.Директива #include
•Директива #include позволяет включить в исходный модуль программный код, находящийся в другом файле
•Имя включаемого файла должно соответствовать соглашениям операционной системы и может состоять либо только из имени файла, либо из имени файла с предшествующим ему маршрутом
•Если имя файла указано в кавычках (“файл”), то поиск файла осуществляется в соответствии с заданным маршрутом, а при его отсутствии в текущем каталоге
•Если имя файла задано в угловых скобках (<файл>), то поиск файла производится в стандартных для среды разработки директориях
138
14.2.Директива #define (1)
•Директива #define служит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами
•Конструкции, определенные при помощи директивы #define, подставляются в код программы препроцессором до основной компиляции программы
•Для отмены действия директивы #define используется директива
#undef
1)
Предкомпиляция
139
14.2. Директива #define (2)
2)
3) #define MAX(x,y) ((x)>(y))?(x):(y)
t=((i)>(s[i])?(i):(s[i]);
t=MAX(i,s[i]);
4)
void main()
{
int a = (10+3)*(1.2+1.8); printf("%d", a);
getch();
}
140