Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

c++decl — online w chmurze

Uruchom c++decl w darmowym dostawcy hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie c++decl, które można uruchomić w darmowym dostawcy usług hostingowych OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


cdecl, c++decl — tworzenie deklaracji typu C i C++

STRESZCZENIE


cdekl [-a | --+ | -p | -r] [-ciqdDV]
[[ pliki ...] | wyjaśniać ... | ogłosić ... | rzucać ... | zestaw ... | pomoc | ? ]
c++dekl [-a | --+ | -p | -r] [-ciqdDV]
[[ pliki ...] | wyjaśniać ... | ogłosić ... | rzucać ... | zestaw ... | pomoc | ? ]
wyjaśniać ...
ogłosić ...
rzucać ...

OPIS


Cdekl (I c++dekl) to program do kodowania i dekodowania deklaracji typu C (lub C++).
Język C jest oparty na (proponowanym szkicu) standardzie X3J11 ANSI; opcjonalnie C
język może być oparty na definicji sprzed ANSI zdefiniowanej przez firmę Kernighan & Ritchie's Połączenia C
Programowanie Wybierz język book lub język C zdefiniowany przez kompilator C Ritchie PDP-11.
Język C++ jest oparty na języku Bjarne Stroustrupa Połączenia C + + Programowanie Wybierz język, plus
wersja 2.0 dodatki do języka.

OPCJE


-a Użyj dialektu ANSI C języka C.

-p Użyj dialektu sprzed ANSI zdefiniowanego w książce Kernighana i Ritchiego.

-r Użyj dialektu zdefiniowanego przez kompilator Ritchie PDP-11 C.

-+ Używaj języka C++ zamiast C.

-i Uruchom w trybie interaktywnym (domyślnie podczas czytania z terminala). To także
włącza monity, edycję linii i historię linii.

-q Wycisz monit. Wyłącza monit w trybie interaktywnym.

-c Utwórz kompilowalny kod C lub C++ jako dane wyjściowe. Cdekl doda średnik na końcu
deklaracji i parę nawiasów klamrowych na koniec definicji funkcji.

-d Włącz informacje o debugowaniu (jeśli są wkompilowane).

-D Włącz informacje debugowania YACC (jeśli jest wkompilowany).

-V Wyświetl informacje o wersji i wyjdź.

WYWOŁYWANIE


Cdekl może być wywoływany pod wieloma różnymi nazwami (przez zmianę nazwy pliku wykonywalnego,
lub tworzenie dowiązania symbolicznego lub dowiązania twardego do niego). Jeśli jest wywoływany jako cdekl wtedy ANSI C jest
domyślny język. Jeśli jest wywoływany jako c++dekl wtedy C++ jest domyślnym. Jeśli jest wywoływany
albo jako wyjaśniać, rzucaćlub ogłosić następnie zinterpretuje resztę wiersza poleceń
opcje jako parametry tego polecenia, wykonaj polecenie i wyjdź. To też zrobi
to, jeśli pierwszy argument nieprzełączający w wierszu poleceń jest jednym z tych trzech poleceń.
Dane wejściowe mogą również pochodzić z pliku.

Cdekl odczytuje nazwane pliki w poszukiwaniu instrukcji w języku opisanym poniżej. A
następuje transformacja z tego języka na C (C++) lub pseudo-angielski. Wyniki
te przekształcenia są zapisywane na standardowym wyjściu. Jeśli żadne pliki nie są nazwane lub nazwa pliku
``-'', odczytane zostanie standardowe wejście. Jeśli standardowe wejście pochodzi z a
terminal (lub -i opcja jest używana), przed każdym zapisywany jest monit w terminalu
linia. Monit można wyłączyć za pomocą -q opcja (lub tzw zestaw bez pytania Komenda). Jeśli
cdekl jest wywoływany jako wyjaśniać, ogłosić or rzucaćlub pierwszy argument jest jednym z poleceń
omówione poniżej, lista argumentów zostanie zinterpretowana zgodnie z przedstawioną gramatyką
poniżej zamiast jako nazwy plików.

Gdy jest uruchamiany interaktywnie, cdekl używa biblioteki readline GNU do podania słowa kluczowego
historia ukończenia i wiersza poleceń, bardzo podobnie bash(1) (por.). Naciśnięcie TAB spowoduje
uzupełnij częściowe słowo kluczowe przed kursorem, chyba że jest więcej niż jedno możliwe
zakończenie, w takim przypadku druga ZAKŁADKA pokaże listę możliwych uzupełnień i
ponownie wyświetlić wiersz poleceń. Można użyć klawiszy strzałek w lewo iw prawo oraz spacji
edycję w naturalny sposób, a klawisze strzałek w górę i w dół przywracają poprzednie wiersze poleceń
z historii. Większość innych znanych klawiszy, takich jak Ctrl-U, aby usunąć cały tekst z pliku
kursor z powrotem na początek linii, działaj zgodnie z oczekiwaniami. Istnieje niejasność pomiędzy
dotychczasowy int i najnowszych słowa kluczowe, ale cdekl zgadnie, który masz na myśli, i zawsze zgadnie
prawidłowo.

Możesz użyć cdekl podczas tworzenia programu w C za pomocą edytora takiego jak vi(1) lub emacs(1). Ty
po prostu wpisz pseudo-angielską wersję deklaracji i zastosuj cdekl jako filtr
do linii. (W vi(1), wpisz ``!!cdekl''.)

Jeśli Stwórz program opcja -c jest używany, dane wyjściowe będą zawierać średniki po
deklaracje zmiennych i pary nawiasów klamrowych po deklaracjach funkcji.

Połączenia -V spowoduje wydrukowanie numerów wersji plików użytych do utworzenia procesu.
Jeśli źródło jest skompilowane z włączonymi informacjami debugowania, plik -d opcja włączy
ma być wyjściem. Jeśli źródło jest skompilowane z włączonymi informacjami debugowania YACC, plik
-D opcja umożliwi jego wyprowadzenie.

COMMAND JĘZYK


Istnieje sześć zdań w języku. The ogłosić instrukcja składa się na typ C
deklaracja z pełnego opisu. The rzucać instrukcja komponuje rzutowanie typu C jako
może pojawić się w wyrażeniu. The wyjaśniać instrukcja dekoduje deklarację typu C lub
cast, tworząc szczegółowy opis. The pomoc (lub ?) instrukcja zapewnia pomoc
wiadomość. ten porzucić (lub wyjście) instrukcja (lub koniec pliku) powoduje wyjście z programu. The zestaw
umożliwia interaktywne ustawienie opcji wiersza poleceń. Każda wypowiedź jest
oddzielone średnikiem lub znakiem nowej linii.

SYNONIMY


Niektóre synonimy są dozwolone podczas deklaracji:

znak jest synonimem znaku char
stała jest synonimem const
wyliczenie jest synonimem wyliczenia
func jest synonimem funkcji
liczba całkowita jest synonimem int
ptr jest synonimem wskaźnika
ref jest synonimem odniesienia
ret jest synonimem powrotu
struktura jest synonimem struktury
wektor jest synonimem tablicy

Funkcja uzupełniania TAB wie tylko o słowach kluczowych w prawej kolumnie
strukturę, a nie te w lewej kolumnie. Uzupełnianie TAB jest o wiele mniej przydatne, gdy
wiodące znaki różnych słów kluczowych są takie same (słowa kluczowe kolidują z jednym
inny), a umieszczenie obu kolumn spowodowałoby sporo konfliktów.

GRAMATYKA


Poniższa gramatyka opisuje język. W gramatyce słowa w „<>” nie są
terminale, gołe słowa pisane małymi literami to terminale, które same się bronią. Gołe wielkie litery
słowa to inne tokeny leksykalne: NIC oznacza pusty łańcuch; NAZWA oznacza identyfikator C;
LICZBA oznacza ciąg cyfr dziesiętnych; a NL oznacza nową linię lub średnik
postacie.

::= NIC
| NL
::= NIC
| zadeklaruj NAZWĘ jako
| ogłosić
| rzucić NAZWĘ do
| rzucać
| wyjaśnić
| wyjaśnić
| wyjaśnić ( ) opcjonalnie NAZWA
| ustawić
| pomoc | ?
| zrezygnować
| Wyjście
::= tablica
| tablica LICZBA z
| powrót funkcji
| funkcja ( ) powrót
| wskaźnik do
| wskaźnik do członka klasy NAZWA
| odniesienie do
|
::=
| *
| NAZWA :: *
| &
::= ( )
| ( )
| [ ]
| [ NUMER ]
| ( )
| NAZWA
::= NIC
| ( )
| ( ) ( )
| ( ) ( )
| ( )
| NAZWA :: *
| *
| &
| [ ]
| [ NUMER ]
::= |
|
| NAZWA struktury | NAZWA związku | wylicz NAZWA | Nazwa klasy
::= ,
|
|
::= ,
| NIC
|
|
| Jak
::= int | znak | podwójny | pływak | próżnia
::= |
::= krótki | długi | niepodpisany | podpisany |
::= | NIC
::= stała | niestabilny | noalias
::= auto | zewnętrzny | zarejestrować | statyczny
::= NIC |
::= NIC |
| stworzyć | nie tworzyć
| monit | bez pytania
| Ritchie | preansi | ansi | cplusplus
| debugować | błąd węzła | yydebug | noyydebug

SET OPCJE


Połączenia zestaw polecenie przyjmuje kilka opcji. Możesz pisać zestaw or zestaw Opcje aby zobaczyć
aktualnie wybranych opcji oraz podsumowanie dostępnych opcji. Pierwszy
cztery odpowiadają -a, -p, -r, -+ odpowiednio opcje wiersza poleceń.

ansi Użyj dialektu ANSI C języka C.

preansi
Użyj dialektu sprzed ANSI zdefiniowanego w książce Kernighana i Ritchiego.

ritchie
Użyj dialektu zdefiniowanego przez kompilator Ritchie PDP-11 C.

cplusplus
Używaj języka C++ zamiast C.

[nie] monit
Włącz lub wyłącz monit w trybie interaktywnym.

[nie]utwórz
Włącz lub wyłącz dodawanie średników lub nawiasów klamrowych do deklaracji
wyjście przez cdekl. Odpowiada to -c opcja linii poleceń.

[nie]debugowanie
Włącz lub wyłącz informacje debugowania.

[nie] yydebug
Włącz lub wyłącz informacje debugowania YACC.

Uwaga: informacje debugowania i informacje debugowania YACC są dostępne tylko wtedy, gdy je mają
został skompilowany cdekl. Dwie ostatnie opcje odpowiadają -d i -D linii poleceń
odpowiednio opcje. Informacje debugowania są zwykle używane podczas opracowywania programów i
generalnie nie jest kompilowany do rozproszonych plików wykonywalnych.

PRZYKŁADY


Aby zadeklarować tablicę wskaźników do funkcji, które są podobne malloc(3), zrób

zadeklaruj fptab jako tablicę wskaźnika do funkcji zwracającej wskaźnik do char

Wynikiem tego polecenia jest

znak *(*fptab[])()

Kiedy zobaczysz tę deklarację w czyimś kodzie, możesz to zrozumieć
robi

wyjaśnij znak *(*fptab[])()

Właściwa deklaracja dot sygnał(2), ignorując prototypy funkcji, jest łatwo opisane w
cdekljęzyk użytkownika:

zadeklaruj sygnał jako funkcję zwracającą wskaźnik do funkcji zwracającej pustkę

który produkuje

unieważnienie (*sygnał())()

Wynikowa deklaracja funkcji ma dwa zestawy pustych nawiasów. autor
taka funkcja może się zastanawiać, gdzie umieścić parametry:

zadeklaruj sygnał jako funkcję (arg1,arg2) zwracającą wskaźnik do funkcji zwracającej pustkę

zapewnia następujące rozwiązanie (po uruchomieniu z -c opcja):

nieważne (*sygnał(arg1,arg2))() { }

Jeśli chcemy dodać prototypy funkcji, prototyp funkcji dla takiej funkcji
as _Wyjście(2) zostałby zadeklarowany z:

zadeklaruj _exit jako funkcję (wartość ret jako int) zwracającą pustkę

dający

void _exit(int wartość ret) { }

Jako bardziej złożony przykład wykorzystujący prototypy funkcji, sygnał(2) można w pełni zdefiniować jako:

zadeklaruj sygnał jako funkcję (x jako int, y jako wskaźnik do funkcji (int) zwracający pustkę)
zwracanie wskaźnika do funkcji(int) zwracanie pustki

dając (z -c)

nieważne (*sygnał(int x, nieważne (*y)(int )))(int ) { }

Cdekl może pomóc ustalić, gdzie umieścić modyfikatory „const” i „volatile”.
deklaracje, tj

zadeklaruj foo jako wskaźnik do const int

daje

stała int *foo

Podczas

zadeklaruj foo jako stały wskaźnik do int

daje

int * stała foo

dec. C++ może pomóc w deklarowaniu referencji, w ten sposób

zadeklaruj x jako odniesienie do wskaźnika do znaku

daje

znak *&x

dec. C++ może pomóc ze wskaźnikami do członków klas, deklarując w ten sposób wskaźnik do an
członek całkowity klasy X z

zadeklaruj foo jako wskaźnik do członka klasy X int

daje

int X::*foo

i

zadeklaruj foo jako wskaźnik do członka funkcji klasy X (arg1, arg2) zwracającej wskaźnik
do klasy Y

daje

klasa Y *(X::*foo)(arg1, arg2)

DIAGNOSTYKA


Zdania deklaruj, rzucaj i wyjaśniaj próbują wskazać konstrukcje, które nie są
obsługiwane w C. W niektórych przypadkach zgaduje się, co było naprawdę zamierzone. W tych
przypadkach wynikiem C jest deklaracja zabawki, której semantyka będzie działać tylko w Algolu-68. The
lista nieobsługiwanych konstrukcji C zależy od wersji języka C
używany (zobacz opcje ANSI, pre-ANSI i Ritchie). Zestaw obsługiwanych konstrukcji C++
jest nadzbiorem zbioru ANSI, z wyjątkiem noalias słowo kluczowe.

LITERATURA


Norma ANSI X3.159-1989 (ANSI C)

ISO/IEC 9899:1990 (norma ISO)

Najczęściej zadawane pytania dotyczące comp.lang.c
http://www.eskimo.com/~scs/C-faq.top.html

Sekcja 8.4 podręcznika C Reference Manual w ramach Połączenia C Programowanie Wybierz język autorstwa B. Kernighana i
D. Ritchiego.

Sekcja 8 podręcznika C++ Reference Manual w ramach Połączenia C + + Programowanie Wybierz język przez B.
Stroustrupa.

OSTRZEŻENIA


Pseudo-angielska składnia jest nadmiernie rozwlekła.

Istnieje mnóstwo sprawdzania semantycznego, które nie jest wykonywane.

Cdekl został napisany przed ukończeniem standardu ANSI C i nie podjęto żadnej próby
aby go zaktualizować. Niemniej jednak jest bardzo zbliżony do standardu, z oczywistością
z wyjątkiem noalias.

Cdeklzakres jest celowo mały. Nie pomaga to w ustaleniu inicjalizacji. To
oczekuje, że klasy pamięci będą znajdować się na początku deklaracji, po której nastąpi ciąg the
const, modyfikatory volatile i noalias, po których następuje typ zmiennej. Cdekl
nie wie nic o listach argumentów o zmiennej długości. (Obejmuje to ``, ...''
składnia.)

Cdekl uważa, że ​​wszystkie deklaracje, które wypowiadasz, będą używane jako zewnętrzne definicje.
Niektóre konteksty deklaracji w C pozwalają na większą elastyczność. Przykładem tego jest:

zadeklaruj argv jako tablicę tablicy char

gdzie cdekl odpowiada z

Ostrzeżenie: nieobsługiwane w C — „Wewnętrzna tablica o nieokreślonym rozmiarze”
(może masz na myśli „tablicę wskaźników”)
znak argv[][]

Wstępne wsparcie dla noalias słowo kluczowe zostało wprowadzone, ponieważ znajdowało się w wersji roboczej ANSI
specyfikacje.

AUTORSKI


Pierwotnie napisany przez Grahama Rossa, poprawiony i rozszerzony przez Davida Wolvertona, Tony'ego Hansena,
i Merlyna LeRoya.

Obsługa readline GNU i port Linuksa autorstwa Davida R. Conrada,[email chroniony]>

Użyj c++decl online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad