EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

c++decl - Online în cloud

Rulați c++decl în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda c++decl care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


cdecl, c++decl - Compune declarații de tip C și C++

REZUMAT


cdecl [-a | -+ | -p | -r] [-ciqdDV]
[[ fișiere ...] | explica ... | declara ... | arunca ... | set ... | ajutor | ? ]
c++decl [-a | -+ | -p | -r] [-ciqdDV]
[[ fișiere ...] | explica ... | declara ... | arunca ... | set ... | ajutor | ? ]
explica ...
declara ...
arunca ...

DESCRIERE


Cdecl (Și c++decl) este un program pentru codificarea și decodarea declarațiilor de tip C (sau C++).
Limbajul C se bazează pe standardul ANSI X3J11 (propunerea propusă); opțional, C
limbajul se poate baza pe definiția pre-ANSI definită de Kernighan & Ritchie's C
Programare Limbă book, sau limbajul C definit de compilatorul Ritchie PDP-11 C.
Limbajul C++ se bazează pe cel al lui Bjarne Stroustrup C ++ Programare Limbă, plus
versiunea 2.0 adăugări la limbă.

OPŢIUNI


-a Utilizați dialectul ANSI C al limbajului C.

-p Utilizați dialectul pre-ANSI definit de cartea lui Kernighan & Ritchie.

-r Utilizați dialectul definit de compilatorul Ritchie PDP-11 C.

-+ Folosiți limbajul C++, mai degrabă decât C.

-i Rulați în modul interactiv (implicit când citiți de pe un terminal). Acesta de asemenea
activează solicitarea, editarea liniilor și istoricul liniilor.

-q Taci promptul. Dezactivează solicitarea în modul interactiv.

-c Creați cod compilabil C sau C++ ca rezultat. Cdecl va adăuga punct și virgulă la sfârșit
a unei declarații și a unei perechi de acolade până la sfârșitul unei definiții de funcție.

-d Activați informațiile de depanare (dacă sunt compilate).

-D Activați informațiile de depanare YACC (dacă sunt compilate).

-V Afișează informații despre versiune și ieși.

INVOCAT


Cdecl poate fi invocat sub un număr de nume diferite (fie prin redenumirea executabilului,
sau crearea unui link simbolic sau hard link către acesta). Dacă este invocată ca cdecl atunci ANSI C este
limba implicita. Dacă este invocată ca c++decl atunci C++ este implicit. Dacă este invocată
ca fie explica, arunca, Sau declara apoi va interpreta restul liniei de comandă
opțiunile ca parametri pentru acea comandă, executați comanda și ieșiți. Va face de asemenea
asta dacă primul argument non-switch de pe linia de comandă este una dintre aceste trei comenzi.
Intrarea poate veni și dintr-un fișier.

Cdecl citește fișierele denumite pentru declarații în limba descrisă mai jos. A
transformarea se face din limbajul respectiv în C (C++) sau pseudo-engleză. Rezultatele
aceste transformări sunt scrise pe ieșirea standard. Dacă niciun fișier nu este numit sau un nume de fișier
de ``-'' este întâlnit, intrarea standard va fi citită. Dacă intrarea standard provine de la a
terminal, (sau -i este utilizată opțiunea), un prompt va fi scris pe terminal înainte de fiecare
linia. Solicitarea poate fi dezactivată de -q opțiunea (sau set fara indemn comanda). Dacă
cdecl este invocat ca explica, declara or arunca, sau primul argument este una dintre comenzi
discutat mai jos, lista de argumente va fi interpretată conform gramaticii prezentate
de mai jos în loc de nume de fișiere.

Când rulează interactiv, cdecl folosește biblioteca GNU readline pentru a furniza cuvinte cheie
finalizarea și istoricul liniei de comandă, foarte asemănător pocni(1) (qv). Apăsarea TAB va
completați cuvântul cheie parțial înainte de cursor, cu excepția cazului în care există mai multe posibile
finalizare, caz în care un al doilea TAB va afișa lista de posibile completări și
reafișează linia de comandă. Tastele săgeți stânga și dreapta și backspace pot fi folosite pentru
editarea într-un mod natural, iar tastele săgeți sus și jos preiau liniile de comandă anterioare
din istorie. Majoritatea celorlalte taste familiare, cum ar fi Ctrl-U pentru a șterge tot textul din
cursorul înapoi la începutul liniei, funcționează așa cum era de așteptat. Există o ambiguitate între
il int și în cuvinte cheie, dar cdecl vei ghici la care te-ai referit și ghiceste mereu
corect.

Poți să folosești cdecl pe măsură ce creați un program C cu un editor ca vi(1) sau emacs(1). Tu
pur și simplu introduceți versiunea pseudo-engleză a declarației și aplicați cdecl ca filtru
la linie. (În vi(1), tastați ``!!cdecl''.)

În cazul în care crea program opțiune -c este utilizat, rezultatul va include punct și virgulă după
declarații de variabile și perechi de acolade după declarațiile de funcție.

-V opțiunea va tipări numerele de versiune ale fișierelor utilizate pentru a crea procesul.
Dacă sursa este compilată cu informațiile de depanare activate, fișierul -d opțiunea va activa
acesta să fie scos. Dacă sursa este compilată cu informațiile de depanare YACC activate, fișierul
-D opțiunea va permite să fie scoasă.

COMMAND LIMBA


Există șase afirmații în limbă. The declara instrucțiunea alcătuiește un tip C
declarație dintr-o descriere verbosă. The arunca instrucțiunea compune un cast de tip C ca
ar putea apărea într-o expresie. The explica instrucțiunea decodifică o declarație de tip C sau
distribuție, producând o descriere detaliată. The ajutor (Sau ?) declarația oferă un ajutor
mesaj. The părăsi (Sau ieşire) (sau sfârșitul fișierului) iese din program. The set
instrucțiunea permite setarea interactivă a opțiunilor liniei de comandă. Fiecare afirmație este
separate prin punct și virgulă sau linie nouă.

SINONIME


Unele sinonime sunt permise în timpul unei declarații:

caracterul este un sinonim pentru char
constantă este un sinonim pentru const
enumerarea este un sinonim pentru enum
func este un sinonim pentru function
integer este un sinonim pentru int
ptr este un sinonim pentru pointer
ref este un sinonim pentru referință
ret este un sinonim pentru returnare
structure este un sinonim pentru struct
vector este un sinonim pentru matrice

Funcția de completare TAB știe numai despre cuvintele cheie din coloana din dreapta a
structura, nu cele din coloana din stânga. Completarea TAB este mult mai puțin utilă atunci când
caracterele principale ale diferitelor cuvinte cheie sunt aceleași (cuvintele cheie sunt în contact cu unul
altul), iar introducerea ambelor coloane ar cauza destul de multe conflicte.

GRAMATICĂ


Următoarea gramatică descrie limbajul. În gramatică, cuvintele din „<>” nu sunt
terminale, cuvintele cu minuscule goale sunt terminale care sunt singure. Majuscule goale
cuvintele sunt alte simboluri lexicale: NIMIC înseamnă șirul gol; NUME înseamnă un identificator C;
NUMĂR înseamnă un șir de cifre zecimale; iar NL înseamnă linia nouă sau punct și virgulă
caractere.

::= NIMIC
| NL
::= NIMIC
| declara NAME ca
| declara
| aruncați NAME în
| turnat
| explica
| explica
| explica ( ) opțional-NUME
| a stabilit
| ajutor | ?
| părăsi
| Ieșire
::= matrice de
| matrice NUMBER din
| revenirea funcției
| functie ( ) revenind
| pointer spre
| pointer către membrul clasei NAME
| trimitere la
|
::=
| *
| NUME :: *
| &
::= ( )
| ( )
| [ ]
| [ NUMĂR ]
| ( )
| NUME
::= NIMIC
| ( )
| ( ) ( )
| ( ) ( )
| ( )
| NUME :: *
| *
| &
| [ ]
| [ NUMĂR ]
::= |
|
| structura NUME | sindicat NUME | enumerarea NUME | numele clasei
::= ,
|
|
::= ,
| NIMIC
|
|
| la fel de
::= int | char | dublu | plutire | gol
::= |
::= scurt | lung | nesemnat | semnat |
::= | NIMIC
::= const | volatil | noalias
::= auto | extern | înregistrare | static
::= NIMIC |
::= NIMIC |
| crea | nocreate
| prompt | fara indemn
| ritchie | preansi | ansi | cplusplus
| depanare | nodebug | yydebug | noyydebug

SET OPŢIUNI


set comanda are mai multe opțiuni. Puteți tasta set or set Opțiuni Pentru a vedea
opțiunile selectate în prezent și un rezumat al opțiunilor disponibile. Primul
patru corespund la -a, -p, -r, și -+ opțiunile liniei de comandă, respectiv.

ansi Utilizați dialectul ANSI C al limbajului C.

preansi
Utilizați dialectul pre-ANSI definit de cartea lui Kernighan & Ritchie.

Ritchie
Utilizați dialectul definit de compilatorul Ritchie PDP-11 C.

cplusplus
Utilizați limbajul C++, mai degrabă decât C.

[nu]prompt
Activați sau dezactivați promptul în modul interactiv.

[nu]creați
Activați sau dezactivați adăugarea de puncte și virgulă sau acolade la declarații
ieșire de cdecl. Aceasta corespunde cu -c opțiune linie de comandă.

[nu]depanare
Activați sau dezactivați informațiile de depanare.

[nu]yydebug
Activați sau dezactivați informațiile de depanare YACC.

Notă: informațiile de depanare și informațiile de depanare YACC sunt disponibile numai dacă au
fost compilat în cdecl. Ultimele două opțiuni corespund -d și -D Linie de comanda
opțiuni, respectiv. Informațiile de depanare sunt utilizate în mod normal în dezvoltarea programelor și
nu este în general compilat în executabile distribuite.

EXEMPLE


Pentru a declara o matrice de pointeri către funcții care sunt asemănătoare malloc(3), face

declarați fptab ca matrice de pointer la funcție returnând pointerul la char

Rezultatul acestei comenzi este

char *(*fptab[])()

Când vedeți această declarație în codul altcuiva, puteți înțelege prin
face

explica caracterul *(*fptab[])()

Declarația corespunzătoare pentru semnal(2), ignorând prototipurile de funcții, este ușor descris în
cdecllimba lui:

declară semnal ca funcție care returnează pointerul la funcția returnând nulă

care produce

void (*semnal())()

Declarația funcției care rezultă are două seturi de paranteze goale. Autorul lui
o astfel de funcție s-ar putea întreba unde să pună parametrii:

declară semnalul ca funcție (arg1,arg2) returnând pointerul la funcție returnând void

oferă următoarea soluție (când rulați cu -c opțiune):

void (*semnal(arg1,arg2))() { }

Dacă vrem să adăugăm în prototipurile funcției, prototipul funcției pentru o astfel de funcție
as _Ieșire(2) se va declara cu:

declară _exit ca funcție (revaloare ca int) returnând void

oferindu-

void _exit(int retvaloare) { }

Ca exemplu mai complex folosind prototipuri de funcții, semnal(2) ar putea fi pe deplin definită ca:

declarați semnalul ca funcție (x ca int, y ca indicator către funcția (int) returnând void)
returnarea indicatorului la function(int) returnarea void

dând (cu -c)

void (*signal(int x, void (*y)(int )))(int ) { }

Cdecl vă poate ajuta să aflați unde să puneți modificatorii „const” și „volatile”.
declaraţii, deci

declară foo ca pointer către const int

oferă

const int *foo

în timp ce

declară foo ca indicator const către int

oferă

int * const foo

C++ decl poate ajuta la declararea referințelor, astfel

declarați x ca referință la pointer la caracter

oferă

char *&x

C++ decl poate ajuta cu pointeri către un membru al claselor, declarând astfel un pointer către an
membru întreg al unei clase X cu

declara foo ca pointer către membru al clasei X int

oferă

int X::*foo

și

declara foo ca pointer către un membru al funcției de clasă X (arg1, arg2) care returnează pointerul
la clasa Y

oferă

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

DIAGNOSTIC


Declarațiile de declarare, exprimare și explicație încearcă să evidențieze construcții care nu sunt
susținut în C. În unele cazuri, se face o presupunere cu privire la ceea ce a fost cu adevărat intenționat. În aceste
cazuri, rezultatul C este o declarație de jucărie a cărei semantică va funcționa numai în Algol-68. The
lista de constructe C neacceptate depinde de versiunea limbajului C
utilizat (consultați opțiunile ANSI, pre-ANSI și Ritchie). Setul de constructe C++ acceptate
este un superset al setului ANSI, cu excepția noalias cuvinte cheie.

REFERINȚE


Standard ANSI X3.159-1989 (ANSI C)

ISO/IEC 9899:1990 (standardul ISO)

Întrebările frecvente comp.lang.c
http://www.eskimo.com/~scs/C-faq.top.html

Secțiunea 8.4 din Manualul de referință C din C Programare Limbă de B. Kernighan &
D. Ritchie.

Secțiunea 8 a Manualului de referință C++ din C ++ Programare Limbă de B.
Stroustrup.

Avertismente


Sintaxa pseudo-engleză este excesiv de verbosă.

Există o mulțime de verificări semantice care nu se fac.

Cdecl a fost scris înainte de finalizarea standardului ANSI C și nu a fost făcută nicio încercare
pentru a o aduce la zi. Cu toate acestea, este foarte aproape de standard, cu ceea ce este evident
excepție de noalias.

Cdecldomeniul de aplicare al lui este în mod intenționat mic. Nu vă ajută să vă dați seama de inițializări. Aceasta
se așteaptă ca clasele de stocare să fie la începutul unei declarații, urmate de
modificatori const, volatile și noalias, urmați de tipul variabilei. Cdecl
nu știe nimic despre listele cu argumente cu lungime variabilă. (Acest lucru include ``, ...''
sintaxă.)

Cdecl crede că toate declarațiile pe care le rostiți vor fi folosite ca definiții externe.
Unele contexte de declarație în C permit mai multă flexibilitate decât aceasta. Un exemplu în acest sens este:

declara argv ca matrice de matrice de char

Unde cdecl răspunde cu

Avertisment: neacceptat în C -- „Matrice interioară de dimensiune nespecificată”
(poate vrei să spui „matrice de pointer”)
char argv[][]

Sprijin provizoriu pentru noalias cuvântul cheie a fost introdus pentru că era în proiectul ANSI
caietul de sarcini.

AUTORI


Scrisă inițial de Graham Ross, îmbunătățită și extinsă de David Wolverton, Tony Hansen,
și Merlyn LeRoy.

Suport GNU readline și port Linux de David R. Conrad,[e-mail protejat]>

Utilizați c++decl online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

  • 1
    aarch64-linux-gnu-gnatbind
    aarch64-linux-gnu-gnatbind
    gnat, gnatbind, gnatbl, gnatchop,
    gnatfind, gnathtml, gnatkr, gnatlink,
    gnatls, gnatmake, gnatprep, gnatpsta,
    gnatpsys, gnatxref - cutie de instrumente GNAT
    DESCRIERE: Th...
    Rulați aarch64-linux-gnu-gnatbind
  • 2
    aarch64-linux-gnu-gnatchop-5
    aarch64-linux-gnu-gnatchop-5
    gnat, gnatbind, gnatbl, gnatchop,
    gnatfind, gnathtml, gnatkr, gnatlink,
    gnatls, gnatmake, gnatprep, gnatpsta,
    gnatpsys, gnatxref - cutie de instrumente GNAT
    DESCRIERE: Th...
    Rulați aarch64-linux-gnu-gnatchop-5
  • 3
    cpupower-idle-info
    cpupower-idle-info
    cpupower idle-info - Utilitar pentru
    Preluați informațiile despre kernelul inactiv CPU
    SINTAXĂ: cpupower [ -c cpulist ]
    idle-info [opțiuni] DESCRIERE: Un instrument
    care tipărește p...
    Rulați cpupower-idle-info
  • 4
    cpupower-idle-set
    cpupower-idle-set
    cpupower idle-set - Utilitar pentru setarea procesorului
    opțiunile nucleului specifice stării inactiv
    SINTAXĂ: cpupower [ -c cpulist ]
    idle-info [opțiuni] DESCRIERE: The
    cpupower idle-se...
    Rulați cpupower-idle-set
  • 5
    g.mapsetsgrass
    g.mapsetsgrass
    g.mapsets - Modifică/tipărește cele ale utilizatorului
    calea de căutare a setului de hărți curent. Afectează
    accesul utilizatorului la datele existente sub
    alte seturi de hărți în locația curentă. ...
    Rulați g.mapsetsgrass
  • 6
    g.messagegrass
    g.messagegrass
    g.message - Imprimă un mesaj, avertisment,
    informații despre progres sau eroare fatală în
    Modul GRASS. Acest modul ar trebui utilizat în
    scripturi pentru mesajele transmise utilizatorului.
    KEYWO...
    Rulați g.messagegrass
  • Mai mult »

Ad