EngelsFransSpaans

Ad


OnWorks-favicon

c++decl - Online in de cloud

Voer c++decl uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht c++decl die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online-emulator of MAC OS online-emulator

PROGRAMMA:

NAAM


cdecl, c++decl - Stel declaraties van het type C en C++ samen

KORTE INHOUD


cdcl [-een | -+ | -p | -r] [-ciqdDV]
[[ bestanden ...] | verklaren ... | verklaren ... | gegoten ... | reeks ... | hulp | ? ]
c++ decl [-een | -+ | -p | -r] [-ciqdDV]
[[ bestanden ...] | verklaren ... | verklaren ... | gegoten ... | reeks ... | hulp | ? ]
verklaren ...
verklaren ...
gegoten ...

PRODUCTBESCHRIJVING


Cdecl (En c++ decl) is een programma voor het coderen en decoderen van declaraties van het type C (of C++).
De C-taal is gebaseerd op de (concept voorgestelde) X3J11 ANSI-standaard; eventueel de C
taal kan gebaseerd zijn op de pre-ANSI-definitie gedefinieerd door Kernighan & Ritchie's De C
Programming Taal boek, of de C-taal gedefinieerd door de Ritchie PDP-11 C-compiler.
De C++-taal is gebaseerd op die van Bjarne Stroustrup De C + + Programming Taal, plus de
versie 2.0 toevoegingen aan de taal.

OPTIES


-a Gebruik het ANSI C-dialect van de C-taal.

-p Gebruik het pre-ANSI-dialect dat is gedefinieerd in het boek van Kernighan & Ritchie.

-r Gebruik het dialect dat is gedefinieerd door de Ritchie PDP-11 C-compiler.

-+ Gebruik de taal C++ in plaats van C.

-i Run in interactieve modus (de standaard bij het lezen van een terminal). Dit ook
schakelt vragen, regelbewerking en regelgeschiedenis in.

-q Stil de prompt. Schakelt de prompt in interactieve modus uit.

-c Creëer compileerbare C- of C++-code als uitvoer. Cdecl voegt een puntkomma toe aan het einde
van een declaratie en een paar accolades aan het einde van een functiedefinitie.

-d Schakel foutopsporingsinformatie in (indien gecompileerd).

-D Schakel YACC-foutopsporingsinformatie in (indien gecompileerd).

-V Versie-informatie weergeven en afsluiten.

INVOEREN


Cdecl kan worden aangeroepen onder een aantal verschillende namen (door ofwel het uitvoerbare bestand te hernoemen,
of een symlink of harde link ernaar maken). Als het wordt aangeroepen als cdcl dan is ANSI C de
standaard taal. Als het wordt aangeroepen als c++ decl dan is C++ de standaard. Als er een beroep op wordt gedaan
als ofwel verklaren, gegotenof verklaren dan zal het de rest van de opdrachtregel interpreteren
opties als parameters voor die opdracht, voer de opdracht uit en sluit af. Het zal ook doen
dit als het eerste niet-schakelargument op de opdrachtregel een van die drie opdrachten is.
Input kan ook uit een bestand komen.

Cdecl leest de benoemde bestanden voor instructies in de hieronder beschreven taal. A
transformatie wordt gemaakt van die taal naar C (C++) of pseudo-Engels. De resultaten van
deze transformatie wordt geschreven op standaarduitvoer. Als er geen bestanden zijn genoemd, of een bestandsnaam
van ``-'' wordt aangetroffen, wordt de standaardinvoer gelezen. Als de standaardinvoer afkomstig is van a
terminal, (of de -i optie wordt gebruikt), wordt voor elk een prompt naar de terminal geschreven
lijn. De prompt kan worden uitgeschakeld door de -q optie (of de reeks geen prompt commando). Als
cdcl wordt aangeroepen als verklaren, verklaren or gegoten, of het eerste argument is een van de commando's
hieronder besproken, zal de argumentenlijst geïnterpreteerd worden volgens de getoonde grammatica
hieronder in plaats van als bestandsnamen.

Als het interactief wordt uitgevoerd, cdcl gebruikt de GNU readline-bibliotheek om trefwoorden te leveren
voltooiing en opdrachtregelgeschiedenis, heel erg zoals slaan(1) (zie aldaar). TAB indrukken zal
voltooi het gedeeltelijke trefwoord voor de cursor, tenzij er meer dan één mogelijk is
voltooiing, in welk geval een tweede TAB de lijst met mogelijke voltooiingen toont en
de opdrachtregel opnieuw weergeven. De linker- en rechterpijltoetsen en backspace kunnen hiervoor worden gebruikt
bewerken op een natuurlijke manier, en de pijltoetsen omhoog en omlaag halen eerdere opdrachtregels op
uit de geschiedenis. De meeste andere bekende toetsen, zoals Ctrl-U om alle tekst uit het
cursor terug naar het begin van de regel, werk zoals verwacht. Er is een onduidelijkheid tussen
de int en in trefwoorden, maar cdcl zal raden welke je bedoelde, en het raadt altijd
correct.

Je kunt gebruiken cdcl terwijl je een C-programma maakt met een editor zoals vi(1) of emacs(1). Jij
typ gewoon de pseudo-Engelse versie van de verklaring in en solliciteer cdcl als filter
naar de lijn. (In vi(1), typ ``!!cdecl''.)

Indien de en je merk te creëren programma optie -c wordt gebruikt, zal de uitvoer puntkomma's erna bevatten
variabeledeclaraties en accoladeparen na functiedeclaraties.

De -V optie drukt de versienummers af van de bestanden die zijn gebruikt om het proces te maken.
Als de bron is gecompileerd met foutopsporingsinformatie ingeschakeld, wordt het -d optie zal inschakelen
het moet worden uitgevoerd. Als de bron is gecompileerd met YACC-foutopsporingsinformatie ingeschakeld, wordt het
-D optie zorgt ervoor dat het kan worden uitgevoerd.

COMMAND TAAL


Er zijn zes verklaringen in de taal. De verklaren statement vormt een C-type
verklaring van een uitgebreide beschrijving. De gegoten statement stelt een C-type cast as samen
kan voorkomen in een uitdrukking. De verklaren statement decodeert een C type declaratie of
cast, het produceren van een uitgebreide beschrijving. De hulp (of ?) verklaring biedt een hulp
bericht. De ophouden (of afrit) statement (of het einde van het bestand) verlaat het programma. De reeks
statement maakt het mogelijk om de opdrachtregelopties interactief in te stellen. Elke stelling is
gescheiden door een puntkomma of een nieuwe regel.

SYNONIEMEN


Sommige synoniemen zijn toegestaan ​​tijdens een aangifte:

karakter is een synoniem voor char
constant is een synoniem voor const
opsomming is een synoniem voor opsomming
func is een synoniem voor functie
integer is een synoniem voor int
ptr is een synoniem voor pointer
ref is een synoniem voor referentie
ret is een synoniem voor terugkeren
structuur is een synoniem voor structuur
vector is een synoniem voor array

De TAB-aanvullingsfunctie kent alleen de trefwoorden in de rechterkolom van de
structuur, niet die in de linkerkolom. TAB-aanvulling is een stuk minder nuttig wanneer de
leidende karakters van verschillende zoekwoorden zijn hetzelfde (de zoekwoorden komen in conflict met één
een andere), en het plaatsen van beide kolommen zou nogal wat conflicten veroorzaken.

GRAMMATICA


De volgende grammatica beschrijft de taal. In de grammatica zijn woorden in "<>" niet-
terminals, kale kleine letters zijn terminals die voor zichzelf staan. Kale hoofdletters
woorden zijn andere lexicale tokens: NIETS betekent de lege string; NAAM betekent een C-identificatie;
NUMBER betekent een reeks decimale cijfers; en NL betekent de nieuwe regel of puntkomma
tekens.

::= NIETS
| NL
::= NIETS
| declareer NAAM als
| verklaren
| cast NAAM in
| vorm
| uitleggen
| uitleggen
| uitleggen ( ) optioneel-NAAM
| set
| helpen | ?
| ontslag nemen
| Uitgang
::= reeks van
| array AANTAL van
| functie terugkeren
| functie ( ) terugkeren
| aanwijzer naar
| pointer naar lid van klasse NAME
| referentie naar
|
::=
| *
| NAAM :: *
| &
::= ( )
| ( )
| [ ]
| [ NUMMER ]
| ( )
| NAAM
::= NIETS
| ()
| ( ) ( )
| ( ) ( )
| ( )
| NAAM :: *
| *
| &
| [ ]
| [ NUMMER ]
::= |
|
| struct NAAM | vakbond NAAM | opsomming NAAM | naam van de klasse
::= ,
|
|
::= ,
| NIETS
|
|
| als
::= int | verkolen | dubbel | zweven | leegte
::= |
::= kort | lang | niet ondertekend | getekend |
::= | NIETS
::= constant | vluchtig | noalias
::= automatisch | extern | inschrijven | statisch
::= NIETS |
::= NIETS |
| creëren | geen creatie
| prompt | geen prompt
| ritje | preans | en | cplusplus
| debuggen | knooppuntbug | yydebug | noyydebug

SET OPTIES


De reeks opdracht heeft verschillende opties. Jij kan typen reeks or reeks opties om de ... te zien
momenteel geselecteerde opties en een overzicht van de beschikbare opties. De eerste
vier komen overeen met de -a, -p, -r en -+ opdrachtregelopties, respectievelijk.

ansi Gebruik het ANSI C-dialect van de C-taal.

preansi
Gebruik het pre-ANSI-dialect dat is gedefinieerd in het boek van Kernighan & Ritchie.

ritchie
Gebruik het dialect dat is gedefinieerd door de Ritchie PDP-11 C-compiler.

cplusplus
Gebruik de taal C++ in plaats van C.

[geen] prompt
Schakel de prompt in of uit in de interactieve modus.

[geen] creëren
Schakel het toevoegen van puntkomma's of accolades aan de declaraties in of uit
uitgevoerd door cdcl. Dit komt overeen met de -c opdrachtregeloptie.

[geen] debuggen
Foutopsporingsinformatie in- of uitschakelen.

[geen] yydebug
Schakel YACC-foutopsporingsinformatie in of uit.

Opmerking: foutopsporingsinformatie en YACC-foutopsporingsinformatie zijn alleen beschikbaar als ze dat hebben
in gecompileerd cdcl. De laatste twee opties komen overeen met de -d en -D opdrachtregel
respectievelijk opties. Foutopsporingsinformatie wordt normaal gesproken gebruikt bij de ontwikkeling van programma's, en
wordt over het algemeen niet gecompileerd in gedistribueerde uitvoerbare bestanden.

Voorbeelden


Een array van verwijzingen declareren naar functies die lijken op malloc(3), wel

declareer fptab als array van pointer naar functie terugkerende pointer naar char

Het resultaat van deze opdracht is

char *(*fptab[])()

Wanneer u deze declaratie in de code van iemand anders ziet, kunt u er iets uit opmaken door
doen

verklaar char *(*fptab[])()

De juiste aangifte voor signaal(2), het negeren van functieprototypes, wordt eenvoudig beschreven in
cdcl's taal:

declareer signaal als functie die pointer teruggeeft naar functie die ongeldig retourneert

die produceert

nietig (*signaal())()

De resulterende functiedeclaratie heeft twee sets lege haakjes. De auteur van
zo'n functie kan zich afvragen waar de parameters moeten worden geplaatst:

declareer signaal als functie (arg1,arg2) retourneert pointer naar functie retourneert leegte

biedt de volgende oplossing (indien uitgevoerd met het -c keuze):

leegte (*signaal(arg1,arg2))() { }

Als we de functieprototypes willen toevoegen, het functieprototype voor een dergelijke functie
as _Uitgang(2) zou worden verklaard met:

verklaar _exit als functie (retvalue als int) retourneert ongeldig

het geven van

leegte _exit(int retvalue) { }

Als een complexer voorbeeld met behulp van functieprototypes, signaal(2) kan volledig worden gedefinieerd als:

verklaar signaal als functie (x als int, y als pointer naar functie (int) geeft ongeldig terug)
terugkerende pointer naar functie (int) retourneert leegte

geven (met -c)

leegte (*signaal(int x, leegte (*y)(int )))(int ) { }

Cdecl kan helpen uitzoeken waar de "const" en "volatile" modifiers moeten worden geplaatst
declaraties dus

declareer foo als pointer naar const int

geeft

const int *foo

en

declareer foo als const pointer naar int

geeft

int * const foo

C++ decl kan dus helpen bij het declareren van referenties

declareer x als verwijzing naar pointer naar karakter

geeft

teken *&x

C++ decl kan helpen met verwijzingen naar lid van klassen, waardoor een verwijzing naar een wordt gedeclareerd
integer lid van een klasse X met

declareer foo als pointer naar lid van klasse X int

geeft

int X::*foe

en

declareer foo als aanwijzer naar lid van klasse X-functie (arg1, arg2) terugkerende aanwijzer
naar klasse Y

geeft

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

DIAGNOSE


De statements declareren, casten en verklaren proberen constructies aan te wijzen die dat niet zijn
ondersteund in C. In sommige gevallen wordt er gegokt naar wat werkelijk de bedoeling was. In deze
gevallen is het C-resultaat een speelgoeddeclaratie waarvan de semantiek alleen werkt in Algol-68. De
lijst met niet-ondersteunde C-constructies is afhankelijk van welke versie van de C-taal wordt gebruikt
gebruikt (zie de opties ANSI, pre-ANSI en Ritchie). De set ondersteunde C++-constructies
is een superset van de ANSI-set, met uitzondering van de noalias trefwoord.

REFERENTIES


ANSI-standaard X3.159-1989 (ANSI C)

ISO/IEC 9899:1990 (de ISO-norm)

De veelgestelde vragen over comp.lang.c
http://www.eskimo.com/~scs/C-faq.top.html

Sectie 8.4 van de C-referentiehandleiding binnen De C Programming Taal door B. Kernighan &
D Ritchie.

Sectie 8 van de C++ Reference Manual binnen De C + + Programming Taal door B.
Stroustrup.

WAARSCHUWINGEN


De pseudo-Engelse syntaxis is overdreven uitgebreid.

Er is een schat aan semantische controle die niet wordt gedaan.

Cdecl is geschreven voordat de ANSI C-standaard was voltooid en er is geen poging gedaan
om het up-to-date te houden. Desalniettemin ligt het heel dicht bij de standaard, met het voor de hand liggende
uitgezonderd noalias.

CdeclDe reikwijdte is opzettelijk klein. Het helpt je niet om initialisaties te achterhalen. Het
verwacht dat opslagklassen aan het begin van een declaratie staan, gevolgd door de
const, vluchtige en noalias modifiers, gevolgd door het type variabele. Cdecl
weet niets van argumentenlijsten met variabele lengte. (Dit is inclusief de ``, ...''
syntaxis.)

Cdecl denkt dat alle declaraties die u uitspreekt, zullen worden gebruikt als externe definities.
Sommige declaratiecontexten in C bieden meer flexibiliteit dan dit. Een voorbeeld hiervan is:

declareer argv als array van array van char

WAAR cdcl reageert met

Waarschuwing: niet ondersteund in C -- 'Binnenarray van niet-gespecificeerde grootte'
(misschien bedoel je "array of pointer")
char argv[][]

Voorlopige steun voor de noalias trefwoord is ingevoerd omdat het in de concept-ANSI stond
specificaties.

AUTEURS


Oorspronkelijk geschreven door Graham Ross, verbeterd en uitgebreid door David Wolverton, Tony Hansen,
en Merlyn LeRoy.

GNU readline-ondersteuning en Linux-poort door David R. Conrad,[e-mail beveiligd]>

Gebruik c++decl online met onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad