Это команда cproto, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
cproto - создание прототипов функций C и преобразование определений функций
СИНТАКСИС
cпрото [ вариант ...] [ файл ...]
ОПИСАНИЕ
Спрото генерирует прототипы функций для функций, определенных в указанных исходных файлах C
на стандартный вывод. Определения функций могут быть в старом стиле или в стиле ANSI C.
Необязательно, cпрото также выводит объявления для переменных, определенных в файлах. Если нет
файл приведен аргумент, cпрото считывает свой ввод со стандартного ввода.
Предоставляя параметр командной строки, cпрото также преобразует определения функций в
указанные файлы из старого стиля в стиль ANSI C. Исходные исходные файлы вместе
с файлами, указанными
#include "файл"
директивы, появляющиеся в исходном коде, будут перезаписаны преобразованным кодом. Если
в командной строке не указаны имена файлов, тогда программа считывает исходный код из
стандартный ввод и вывод преобразованного источника на стандартный вывод.
Если какие-либо комментарии появляются в объявлениях параметров для определения функции, например, в
пример,
основной (argc, argv)
int argc; / * количество аргументов * /
char * argv []; / * аргументы * /
{
}
тогда преобразованное определение функции будет иметь вид
Int
основной (
int argc, / * количество аргументов * /
char * argv [] / * аргументы * /
)
{
}
В противном случае преобразованное определение функции будет выглядеть как
Int
main (int argc, char * argv [])
{
}
Спрото может при желании преобразовать определения функций из стиля ANSI в старый стиль.
В этом режиме программа также преобразует появляющиеся деклараторы функций и прототипы.
вне функциональных органов. Это не полное преобразование ANSI C в старый C. Программа
ничего не меняет внутри функциональных тел.
Спрото опционально может сгенерировать исходный код в формате lint-библиотеки. Это полезно в
среды, где ЛИНТЕР утилита используется для дополнения проверки прототипа вашего
программу.
ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-e Выведите ключевое слово внешний перед каждым сгенерированным прототипом или объявлением, которое
имеет глобальный охват.
-f n Установите стиль сгенерированных прототипов функций, где n это число от 0 до 3.
Например, рассмотрим определение функции
основной (argc, argv)
интервал аргумент;
char * argv [];
{
}
Если значение равно 0, то прототипы не создаются. Если установлено значение 1, вывод будет:
int main (/ * int argc, char * argv [] * /);
Для значения 2 результат имеет вид:
int main (int / * argc * /, char * / * argv * / []);
Значение по умолчанию - 3. Создается полный прототип функции:
int main (int argc, char * argv []);
-l Сгенерировать текст для lint-библиотеки (заменяет "-f"вариант). Вывод включает
комментарий
/ * БИБЛИОТЕКА * /
Специальные комментарии LINT_EXTERN и LINT_PREPRO (а-ля "VARARGS") соответственно включаются
параметр "-x" и скопируйте текст комментария в вывод (для предварительной обработки в ЛИНТЕР).
Используйте комментарий
/ * LINT_EXTERN2 * /
для включения externs, определенных в первом уровне включаемых файлов. Используйте комментарий
/ * LINT_SHADOWED * /
вызывать cпрото помещать директивы "#undef" перед каждым объявлением библиотеки lint
(то есть, чтобы избежать конфликтов с макросами, которые должны иметь то же имя, что и
функции, вызывая синтаксические ошибки).
Обратите внимание, что эти специальные комментарии не поддерживаются VAX / VMS, поскольку нет
эквивалент опции «-C» для cpp с VAX-C.
-c Комментарии к параметрам в прототипах, сгенерированных параметрами -f1 и -f2:
по умолчанию опущено. Используйте эту опцию, чтобы включить вывод этих комментариев.
-m Поместите макрос в список параметров каждого сгенерированного прототипа. Например:
int main P _ ((int argc, char * argv []));
-M имя
Задайте имя макроса, используемого для окружения списков параметров прототипа, когда опция -m
выбрано. По умолчанию - «P_».
-d Опустите определение макроса прототипа, используемого параметром -m.
-o файл
Укажите имя выходного файла (по умолчанию: стандартный вывод).
-O файл
Укажите имя файла с ошибкой (по умолчанию: стандартная ошибка).
-p Отключите продвижение формальных параметров в определениях функций старого стиля. К
по умолчанию, параметры типа колесница or короткие в определениях функций старого стиля
повышен до типа Int в прототипе функции или преобразованной функции ANSI C
определение. Параметры типа плавать получить повышение до двойной так же.
-q Не выводить сообщения об ошибках, если программа не может прочитать файл, указанный в
an #включают Директивы.
-s По умолчанию cпрото генерирует объявления только для функций и переменных, имеющих
глобальный охват. Эта опция выведет статический декларации.
-S Выводить только статические объявления.
-i По умолчанию cпрото генерирует объявления только для функций и переменных, имеющих
глобальный охват. Эта опция выведет встроенный декларации.
-T Скопируйте определения типов из каждого файла. (Определения во включенных файлах копируются,
в отличие от опции "-l").
-v Также выводите объявления для переменных, определенных в источнике.
-x Эта опция заставляет процедуры и переменные, которые объявлены "extern", быть
включены в вывод.
-X уровень
Эта опция ограничивает уровень включаемого файла, из которого извлекаются объявления
проверка вывода препроцессора.
-a Преобразуйте определения функций из старого стиля в стиль ANSI C.
-t Преобразуйте определения функций из стиля ANSI C в традиционный стиль.
-b Перепишите заголовки определения функций, чтобы включить как старый, так и новый стиль.
объявления, разделенные директивой условной компиляции. Например,
программа может сгенерировать это определение функции:
#ifdef ANSI_FUNC
Int
main (int argc, char * argv [])
#еще
Int
основной (argc, argv)
интервал аргумент;
char * argv []
#endif
{
}
-B Директивы
Установите директиву условной компиляции для вывода в начале функции
определения, генерируемые параметром -b. По умолчанию
#ifdef ANSI_FUNC
-P шаблон
-F шаблон
-C шаблон
Установите выходной формат для сгенерированных прототипов, определений функций и функций.
определения с комментариями к параметрам соответственно. Формат указывается
шаблон в форме
"int f (a, b)"
но вы можете заменить каждый пробел в этой строке любым количеством пробелов
символы. Например, вариант
-F "int f (\ n \ ta, \ n \ tb \ n \ t)"
будет производить
int main (
интервал,
char * argv []
)
-D имя [= значение]
Эта опция передается препроцессору и используется для определения символов для
использовать с условными выражениями, такими как #ифдеф.
-U имя
Эта опция передается препроцессору и используется для удаления любых
определения этого символа.
-I каталог
Эта опция передается препроцессору и используется для указания
каталог для поиска файлов, на которые есть ссылки #включают.
-E CPP Передайте входные файлы через указанную команду препроцессора C при генерации
прототипы. По умолчанию программа использует / lib / cpp.
-E 0 Не запускайте препроцессор C.
-V Информация о версии для печати.
ОКРУЖАЮЩАЯ СРЕДА
Переменная среды CPROTO проверяется на наличие списка опций в том же формате, что и переменная среды.
параметры командной строки. Параметры, указанные в командной строке, отменяют любые соответствующие
вариант среды.
Используйте cproto онлайн с помощью сервисов onworks.net