CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
Введение
1. Введение.
Это руководство содержит описание всех библиотечных функций
библиотеки Borland C++, общих переменных и типов, а также
примеры программ для иллюстрации использования большинства
функций, переменных и типов.
Если вы только начинаете программировать на языке "C" или
"C++", или, если вам нужна информация о содержимом документации
по Borland C++, то вам сначала лучше обратиться ко второй главе
тома "Getting Started", которая называется "Navigating in
Borland C++ manuals".
Ниже дано краткое описание глав данного руководства:
Глава 1: Функция main. В этой главе обсуждаются аргументы
функции main, включая содержащие символы маскирования,
приводится несколько примеров программ и короткая информация,
касающаяся соглашению по вызову языка Pascal. Кроме этого
описано возвращаемое функцией main значение.
Глава 2: Библиотека Borland C++. Описание всех библиотечных
функций Borland C++ в алфавитном порядке. Для каждой функции
указана следующая информация: синтаксис, включаемые файлы,
краткое описание действия, возвращаемые значения, переносимость
данной функции со списком ссылок на связанные с ней функции и
пример использования данной функции.
Глава 3: Глобальные переменные. Приведено описание
глобальных переменных Borland C++. Вы можете использовать эти
переменные, чтобы освободить себя от работы по программированию
общих переменных (дата, время, сообщения об ошибках, размер
стека и т.п.).
2. Документация по классам и функциям, членам классов.
Определенные классы и функции - члены класса включены в
главу 2. Ниже приведен список классов и функций - членов классов
и номера страниц, на которых они описаны.
----------------------------------------------------------------
Имя Тип Номер страницы
----------------------------------------------------------------
abs Функция - член класса 11
acos Функция - член класса 16
arg Функция - член класса 19
asin Функция - член класса 21
atan Функция - член класса 23
bcd Класс 32
complex Класс 69
conj Функция - член класса 71
cos Функция - член класса 73
cosh Функция - член класса 74
exp Функция - член класса 115
imag Функция - член класса 263
log Функция - член класса 306
log10 Функция - член класса 307
norm Функция - член класса 335
pow Функция - член класса 356
polar Функция - член класса 354
real Функция - член класса 387
sin Функция - член класса 469
sinh Функция - член класса 470
sqrt Функция - член класса 479
tan Функция - член класса 515
tanh Функция - член класса 516
----------------------------------------------------------------
Примечание: Шрифты, используются в данном руководстве в
соответствии с описанием, приведенным в "Getting Started".
ГЛАВА 1
---------------------------------------------------------------
Функция main.
Каждая программа на С и C++ должна иметь функцию main;
причем ваше дело, где вы ее поместите. Некоторые программисты
помещают ее в начале файла, некоторые в конце. Однако независимо
от ее положения необходимо помнить следующее:
Аргументы функции "main".
Запускающая процедура Borland C++ посылает функции main три
параметра (аргумента): argc, argv и env.
- argc, целое, - это число аргументов командной строки,
посылаемое функции main,
- argv это массив указателей на строки (char * []).
Под версией DOS 3.x и более поздними argv[0]
определяется как полный маршрут запускаемой программы.
При работе под более ранними версиями DOS argv указывает
на нулевую строку ("").
argv[1] указывает на первую после имени программы строку
командной строки.
argv[2] указывает на вторую после имени программы строку
командной строки.
argv[argc-1] указывает на последний аргумент, посылаемый
функции main.
argv[argc] содержит NULL.
- env также является массивом указателей на строки. Каждый
элемент env[] содержит строку вида ENVVAR=значение.
ENVVAR - это имя переменной среды, типа PATH или 87.
<значение> это значение данной переменной окружения,
например C:\DOS;C:\TOOLS (для PATH) или YES (для 87).
Заметим, однако, что если вы описываете некоторые из этих
аргументов, то вы должны описывать их в таком порядке: argc,
argv, env. Например, допустимы следующие объявления аргументов:
main()
main(int argc) /* допустимо но не очень хорошо */
main(int argc, char *argv[])
main(int argc, char *argv[], char *env[])
Объявление main(int argc) не очень удобно тем, что зная
количество параметров, вы не имеете доступа к ним самим.
Аргумент env всегда доступен через глобальную переменную
environ. Смотрите описание переменной environ (в Главе 3) и
функции putenv и getenv (в Главе 2).
Параметры argc и argv также доступны через переменные_argc
и _argv.
Пример программы, использующей argc, argv и env.
Это пример программы ARGS.EXE, которая демонстрирует
простейший путь использования аргументов, посылаемых функции
main.
/* программа ARGS.C */
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char *argv[], char *env[])
{
int i;
printf("Значение argc равно %d \n\n",argc);
printf("В командной строке содержится %d параметров \n\n",argc);
for (i=0; i<=argc; i++)
printf(" argv[%d]: %s\n",i,argv[i]);
printf("Среда содержит следующие строки:\n");
for (i=0; env[i] != NULL; i++)
printf(" env[%d]: %s\n",i,env[i]);
return 0;
}
Предположим, что вы запускаете программу ARGS.EXE со
следующей командной строкой:
C:> args first_arg "arg with blanks" 3 4 "last but one" stop!
Заметим, что вы можете послать аргумент с пробелами,
заключив его в двойные кавычки, как показано на примере
"argument with blanks" и "last but one" в примере вызова
программы.
В результате работы программы вы получите примерно
следующее:
Значение argc равно 7
В командной строке содержится 7 параметров
argv[0]: c:\turboc\testargs.exe
argv[1]: first_arg
argv[2]: arg with blank
argv[3]: 3
argv[4]: 4
argv[5]: last but one
argv[6]: stop!
Среда содержит следующие строки:
env[0]: COMSPEC=C:\COMMAND.COM
env[1]: PROMPT=$p $g
env[2]: PATH=C:\SPRINT;C:\DOS;C:\BC
Максимальная общая длина командной строки, посылаемая
функции main (включая пробелы и имя самой программы), не может
превышать 128 символов; это ограничения DOS.
Символы маскирования в командной строке
Аргументы командной строки могут содержать символы
маскирования. При этом они могут расширяться для всех имен
файлов, которые совпадают с аргументом так, как это делается,
например, с командой DOS copy. Для использования символов
маскирования необходимо при связывании вашей программы
редактором связей подсоединить к ней объектный файл
WILDARGS.OBJ, который поставляется с Borland C++.
Если файл WILDARGS.OBJ подсоединен к вашей программе, то вы
можете в командной строке использовать аргументы типа "*.*". При
этом имена всех файлов, подходящих к данной маске, заносятся в
массив argv. Максимальный размер массива argv зависит только от
объема динамической области памяти.
Если под данную маску не нашлось подходящих файлов, то
аргумент передается в том виде, в каком он был набран в
командной строке. (Т.е. функции main передается строка,
содержащая символы маскирования).
Аргументы, заключенные в двойные кавычки ("..."), не
расширяются.
Пример. Следующие команды компилируют файл ARGS.C и
связывают его с модулем WILDARGS.OBJ, а затем запускают
получившуюся программу ARGS.EXE:
bcc args wildarg.obj
args C:\BORLANDC\INCLUDE\*.H "*.C"
При запуске ARGS.EXE первый аргумент расширяется до имен
всех файлов с расширением H в директории Borland C++ INCLUDE.
Отметим, что все строки включают полный маршрут (к примеру
C:\TC\INCLUDE\ALLOC.H). Аргумент *.C не расширяется, т.к. он
заключен в кавычки.
Если вы работаете в Интегрированном Окружении (BC.EXE), то
вам просто нужно указать в меню проекта имя файла проекта,
который должен содержать следующие строки:
ARGS
WILDARGS.OBJ
Затем с помощью команд "Run/Arguments" следует установить
параметры командной строки.
Замечание. Если вы хотите, чтобы обработка символов
маскирования происходила всегда, т.е. чтобы WILDARGS.OBJ
автоматически подсоединялся редактором связей, вы должны
модифицировать вашу стандартную библиотеку C?.LIB, добавив в нее
файл WILDARGS.OBJ. Для этого удалите из библиотеки SETARGV и
добавьте WILDARGS. Это можно сделать с помощью следующих команд
(мы подразумеваем, что стандартные библиотеки и WILDARGS.OBJ
содержатся в текущей директории):
TLIB описана в главе 7 "Утилиты" документа "User's Guide".
tlib cs -setargv +wildargs
tlib cc -setargv +wildargs
tlib cm -setargv +wildargs
tlib cl -setargv +wildargs
tlib ch -setargv +wildargs
Компиляция с использованием ключа -p (Соглашение по вызову
языка Паскаль).
Если вы компилируете вашу программу, используя соглашение
по вызову языка Паскаль (детально описано в главе 9 "Interfacing
with assembly languige", "Programmer's Guide"), вы должны
помнить, что функция main должна быть явно объявлена как функция
С. Это можно сделать с помощью ключевого слова cdecl примерно
так:
cdecl main(int argc, char *argv[], char *env[])
Значение, возвращаемое функцией main.
Функция main возвращает значение, которое является кодом
завершения программы: это целое. Однако, если ваша программа для
завершения использует функцию exit (или _exit), то возвращаемым
значением будет аргумент этой функции.
Например, если ваша программа содержит вызов:
exit(1)
то код завершения будет равен 1.
Если для запуска программы вы используете интегрированное
окружение Borland C++ (BC.EXE), то посмотреть возвращаемое
значение функции main вы можете, выбрав "File | Get Info".
