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".