main( ) и getarray( )
main( ) и getarray( )
Вызовем нашу функцию getarray( ), предназначенную для считывания. Мы определили эту функцию в терминах ввода и вывода и наметили в общих чертах схему на псевдокоде. Теперь давайте напишем функцию и покажем, как она включается в основную программу:
Сначала напишем main( ):
/* сортировка 1 */
#define MAXSIZE 100 /* предельное количество сортируемых целых чисел */
main( )
{
int numbers [MAXSIZE]; /* массив для ввода */
int size; /* количество вводимых чисел */
size = getarray(numbers, MAXSIZE); /* запись чисел в массив */
sort(numbers, size); /* сортировка массива */
print(numbers,/size); /* печать отсортированного массива */
}
Это общий вид программы. Функция getarray() размещает введенное числа в массиве numbers и выдает сообщение о том, сколько значений было считано; эта величина записывается в size. Затем идя функции sоrt( ) и print( ), которые мы еще должны написать; они сортируют массив и печатают результаты. Включая в них size, мы облегчаем им работу и избавляем от необходимости выполнять самим подсчет. Мы также снабдили getarray( ) переменной MAXSIZE, которая сообщает размер массива, необходимого для запоминания.
Теперь, когда мы добавили size к передаваемой информации, нужно модифицировать рисунок нашего черного ящика. См. рис. 10.6.
РИС. 10.6. Программ: сортировки, дополнительные детали.
Теперь рассмотрим функцию getarray( ):
/* getarray( ), использующая getint( ) */
#define STOP -1 /* признак EOF */
#define NONUM 1 /* признак нецифровой строки */
#define YESNUM 0 /* признак строки цифр */
getarray(array, limit);
int array[ ], limit;
{
int num, status;
int index = 0; /* индекс массива */
printf(" Эта программа прекращает считывание чисел после %d значений. ", limit);
printf(" или если введен символ EOF. ");
while(index < limit && (status = getint(&num)) != STOP)
{ /* прекращает считывание после достижения limit или EOF */
if(status == YESNUM)
{ array[index++] = num;
printf(" число %d принято. ", num);
} else if(status == NONUM)
printf(" Это было не целое число! Попытайтесь снова. ");
else
printf(" Этого не может быть! Что-то неправильно. ");
if(index == limit) /* сообщить, если массив заполнен */
printf(" Все %d элементов массива заполнены. ", limit);
return(index);
}
Это значительная часть программы, и у нас есть немало замечаний.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
9.1.5.2. Возвращение из main()
9.1.5.2. Возвращение из main() Программа может естественно завершиться одним из двух способов: посредством использования одной из описанных далее функций или возвратившись из main(). (Третий, более радикальный способ описан далее в разделе 12.4 «Совершение самоубийства: abort()».) В
Обобщенная функция Main
Обобщенная функция Main Обозначение С-функции main с ее списком аргументов (argv[]) следует заменить макросом _tmain. В зависимости от определения символической константы _UNICODE макрос разворачивается либо до main, либо до wmain. _tmain определяется в заголовочном файле <tchar.h>, который
Функция main()
Функция main() Задачей новой функции main(), которая вызывается SCM, является регистрация службы в SCM и запуск диспетчера службы (service control dispatcher). Для этого необходимо вызвать функцию StartServiceControlDispatcher, передав ей имя (имена) и точку (точки) входа одной или нескольких логических
[service main]
[service main] Напоминаем, что явно описывать этот сервис не нужно: подразумевается, что конфигурационный файл начинается с описания этого сервиса.user { oid OID | name user_name }[real–name user_human_name][email email_addr][password pass][crypted crypted_pass][permit permit_state]Команда, которая задает пользователя системы и его
main
main show versionshow config [unsecure] [oids]show connectionsshow usersshow scheduleshow units [ syspolicy [whereset] |email | hash | name XXX |mac [whereset] | unit_type ]show processorshow dsshow alertershow monitorshow list [full] [name XXX | OID YY]show policyshow quota [oid ID | name XXX | list]show loginshow perf filename [header]show healthuser { oid OID | name user_name }[real–name user_human_name][email email_addr][password pass][crypted crypted_pass][permit permit_state]no user {
5.2. Эхо-сервер TCP: функция main
5.2. Эхо-сервер TCP: функция main Наши клиент и сервер TCP используют функции, показанные на рис. 4.1. Программа параллельного сервера представлена в листинге 5.1[1].Листинг 5.1. Эхо-сервер TCP (улучшенный в листинге 5.9)//tcpcliserv/tcpserv01.с 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5 int listenfd, connfd; 6 pid_t
5.4. Эхо-клиент TCP: функция main
5.4. Эхо-клиент TCP: функция main В листинге 5.3 показана функция main TCP-клиента.Листинг 5.3. Эхо-клиент TCP//tcpcliserv/tcpcli01.c 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5 int sockfd; 6 struct sockaddr_in servaddr; 7 if (argc != 2) 8 err_quit("usage: tcpcli <Ipaddress>"); 9 sockfd = Socket(AF_INET, SOCK_STREAM, 0);10 bzero(&servaddr. sizeof(servaddr));11 servaddr.sin_family
8.3. Эхо-сервер UDP: функция main
8.3. Эхо-сервер UDP: функция main Теперь мы переделаем нашу простую модель клиент-сервер из главы 5, используя UDP. Диаграмма вызовов функций в программах наших клиента и сервера UDP показана на рис. 8.1. На рис. 8.2 представлены используемые функции. В листинге 8.1[1] показана функция
8.5. Эхо-клиент UDP: функция main
8.5. Эхо-клиент UDP: функция main Функция main клиента UDP показана в листинге 8.3.Листинг 8.3. Эхо-клиент UDP//udpcliserv/udpcli01.c 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5 int sockfd; 6 struct sockaddr_in servaddr; 7 if (argc != 2) 8 err_quit("usage: udpcli <Ipaddress>"); 9 bzero(&servaddr, sizeof(servaddr));10 servaddr.sin_family = AF_INET;11 servaddr.sin_port =
Вариации метода Main()
Вариации метода Main() Предыдущий вариант Main() был определен с одним параметром (массивом строк) и возвращал данные типа int. Однако это не единственно возможная форма Main(). Для построения точки входа приложения можно использовать любую из следующих сигнатур (в предположении,
Реализация Main()
Реализация Main() Метод Main() класса Program запрашивает у пользователя абсолютное имя типа. После получения строковых данных они передаются методу Туре.GetType(), а извлеченный объект System.Type отправляется каждому из вспомогательных методов. Это повторяется до тех пор, пока
Программа main отсутствует
Программа main отсутствует Неоднократно подчеркивалось, что системы, разработанные с помощью ОО-подхода, не используют понятия основной программы. Не впускаем ли мы основную программу с черного хода, вводя определение корневого класса и корневой процедуры?Не совсем. В
Main
Main В данной секции представлены следующие параметры.• System Time. Отображает текущее системное время. Его можно изменить, однако, как правило, пользователи настраивают системное время с помощью средств операционной системы, а не BIOS.• System Date. Показывает системную дату,
Main
Main Данная секция содержит параметры, отвечающие за определение и настройку устройств хранения данных, системного таймера, безопасность BIOS и т. д.• System Date. Ответственен за системную дату, можно изменить.• System Time. Отвечает за работу системного таймера и представляет
Меню Main
Меню Main В разделе Main вы можете установить дату и время, определить установленные дисковые накопители, установить параметры клавиатуры и просмотреть информацию об установленной оперативной памяти.Начнем по порядку. Для установки времени или даты выделите