IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

c++decl - Online nel cloud

Esegui c++ decl nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando c++decl che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


cdecl, c++decl - Compone dichiarazioni di tipo C e C++

SINOSSI


cdecl [-a | -+ | -p | -r] [-ciqdDV]
[[ file ...] | spiegare ... | dichiarare ... | lanciare ... | set ... | Aiuto | ? ]
c++decl [-a | -+ | -p | -r] [-ciqdDV]
[[ file ...] | spiegare ... | dichiarare ... | lanciare ... | set ... | Aiuto | ? ]
spiegare ...
dichiarare ...
lanciare ...

DESCRIZIONE


Cdecl (E c++decl) è un programma per codificare e decodificare dichiarazioni di tipo C (o C++).
Il linguaggio C si basa sulla (bozza proposta) X3J11 ANSI Standard; facoltativamente, il C
il linguaggio può essere basato sulla definizione pre-ANSI definita da Kernighan & Ritchie's I C
Programmazione Lingua book, o il linguaggio C definito dal compilatore C Ritchie PDP-11.
Il linguaggio C++ è basato su quello di Bjarne Stroustrup I C++ Programmazione Lingua, più il
versione 2.0 aggiunte alla lingua.

VERSIONI


-a Usa il dialetto ANSI C del linguaggio C.

-p Usa il dialetto pre-ANSI definito dal libro di Kernighan & Ritchie.

-r Usa il dialetto definito dal compilatore C Ritchie PDP-11.

-+ Usa il linguaggio C++, piuttosto che C.

-i Esegui in modalità interattiva (l'impostazione predefinita durante la lettura da un terminale). Anche questo
attiva la richiesta, la modifica della riga e la cronologia della riga.

-q Silenzia il prompt. Disattiva il prompt in modalità interattiva.

-c Crea codice C o C++ compilabile come output. Cdecl aggiungerà un punto e virgola alla fine
di una dichiarazione e un paio di parentesi graffe alla fine di una definizione di funzione.

-d Attiva le informazioni di debug (se compilate in).

-D Attiva le informazioni di debug YACC (se compilate in).

-V Visualizza le informazioni sulla versione ed esce.

INVOCANDO


Cdecl può essere invocato con un numero di nomi diversi (rinominando l'eseguibile,
o creando un collegamento simbolico o un collegamento reale ad esso). Se viene invocato come cdecl allora ANSI C è il
lingua di default. Se viene invocato come c++decl quindi C++ è l'impostazione predefinita. Se viene invocato
sia come spiegare, lanciare, o dichiarare quindi interpreterà il resto della riga di comando
opzioni come parametri per quel comando, eseguire il comando ed uscire. Farà anche
questo se il primo argomento non di commutazione sulla riga di comando è uno di quei tre comandi.
L'input può anche provenire da un file.

Cdecl legge i file nominati per le istruzioni nella lingua descritta di seguito. UN
viene effettuata la trasformazione da quella lingua in C (C++) o pseudo-inglese. I risultati di
queste trasformazioni vengono scritte sullo standard output. Se non viene nominato alcun file o un nome di file
di ``-'', verrà letto lo standard input. Se lo standard input proviene da a
terminale, (o il -i viene utilizzata l'opzione), verrà scritto un prompt nel terminale prima di ogni
linea. Il prompt può essere disattivato dal -q opzione (o il set senza preavviso comando). Se
cdecl è invocato come spiegare, dichiarare or lanciare, o il primo argomento è uno dei comandi
discusso di seguito, l'elenco degli argomenti verrà interpretato secondo la grammatica mostrata
sotto invece che come nomi di file.

Quando viene eseguito in modo interattivo, cdecl usa la libreria GNU readline per fornire la parola chiave
completamento e cronologia della riga di comando, molto simile bash(1) (qv). Premendo TAB si
completare la parola chiave parziale prima del cursore, a meno che non ce ne sia più di una possibile
completamento, nel qual caso una seconda TAB mostrerà l'elenco dei possibili completamenti e
visualizzare nuovamente la riga di comando. I tasti freccia sinistra e destra e il backspace possono essere utilizzati per
modifica in modo naturale e i tasti freccia su e giù recuperano le righe di comando precedenti
dalla storia. La maggior parte degli altri tasti familiari, come Ctrl-U per eliminare tutto il testo dal
cursore all'inizio della riga, funziona come previsto. C'è un'ambiguità tra
, il int ed ai miglioramenti parole chiave, ma cdecl indovinerà quale volevi dire, e indovina sempre
correttamente.

Puoi usare cdecl mentre crei un programma C con un editor come vi(1) o emacs(1). Voi
digita semplicemente la versione pseudo-inglese della dichiarazione e applica cdecl come un filtro
alla linea. (In vi(1), digita ``!!cdec''.)

Se l' creare Programma opzione -c viene utilizzato, l'output includerà il punto e virgola dopo
dichiarazioni di variabili e coppie di parentesi graffe dopo le dichiarazioni di funzione.

I -V L'opzione stamperà i numeri di versione dei file utilizzati per creare il processo.
Se l'origine è compilata con le informazioni di debug attivate, -d l'opzione abiliterà
deve essere emesso. Se il sorgente è compilato con le informazioni di debug YACC attivate,
-D l'opzione ne consentirà l'output.

COMANDO LINGUA


Ci sono sei affermazioni nella lingua. Il dichiarare l'istruzione compone un tipo C
dichiarazione da una descrizione dettagliata. Il lanciare l'istruzione compone un tipo C cast come
potrebbe apparire in un'espressione. Il spiegare l'istruzione decodifica una dichiarazione di tipo C o
cast, producendo una descrizione dettagliata. Il Aiuto (o ?) l'istruzione fornisce un aiuto
Messaggio. Il smettere (o exit) (o la fine del file) esce dal programma. Il set
L'istruzione consente di impostare le opzioni della riga di comando in modo interattivo. Ogni affermazione è
separati da un punto e virgola o da una nuova riga.

SINONIMI


Alcuni sinonimi sono consentiti durante una dichiarazione:

carattere è sinonimo di char
costante è sinonimo di const
enumerazione è sinonimo di enum
func è sinonimo di funzione
intero è sinonimo di intero
ptr è sinonimo di puntatore
ref è sinonimo di riferimento
ret è sinonimo di ritorno
struttura è sinonimo di struttura
vettore è sinonimo di array

La funzione di completamento TAB conosce solo le parole chiave nella colonna di destra del
struttura, non quelli nella colonna di sinistra. Il completamento TAB è molto meno utile quando il
i caratteri iniziali di parole chiave diverse sono gli stessi (le parole chiave sono in conflitto con uno
un altro) e l'inserimento di entrambe le colonne causerebbe parecchi conflitti.

GRAMMATICA


La seguente grammatica descrive la lingua. Nella grammatica, le parole in "<>" non sono
terminali, le parole minuscole nude sono terminali che stanno per se stessi. Maiuscole nude
le parole sono altri token lessicali: NIENTE significa la stringa vuota; NAME indica un identificatore C;
NUMERO indica una stringa di cifre decimali; e NL significa la nuova riga o il punto e virgola
caratteri.

::= NIENTE
| NL
::= NIENTE
| dichiara NOME come
| dichiarare
| lancia NAME in
| lancio
| spiegare
| spiegare
| spiegare ( ) opzionale-NAME
| set
| aiuto | ?
| uscire
| Uscita
::= array di
| array NUMBER di
| funzione di ritorno
| funzione ( ) ritorno
| puntatore a
| puntatore al membro della classe NAME
| riferimento alle
|
::=
| *
| NOME :: *
| &
::= ( )
| ( )
| [ ]
| [ NUMERO ]
| ( )
| NOME
::= NIENTE
| ( )
| ( ) ( )
| ( ) ( )
| ( )
| NOME :: *
| *
| &
| [ ]
| [ NUMERO ]
::= |
|
| struttura NOME | unione NOME | enum NOME | nome della classe
::= ,
|
|
::= ,
| NIENTE
|
|
| come
::= int | carattere | doppio | galleggiante | vuoto
::= |
::= breve | lungo | non firmato | firmato |
::= | NIENTE
::= cost | volatile | noalias
::= automatico | esterno | registrati | statico
::= NIENTE |
::= NIENTE |
| creare | nocreare
| prompt | senza preavviso
| richie | preansi | ansi | cplusplus
| eseguire il debug | bug dei nodi | yydebug | noiydebug

SET VERSIONI


I set comando richiede diverse opzioni. Puoi digitare set or set Opzioni per vedere l'
opzioni attualmente selezionate e un riepilogo delle opzioni disponibili. Il primo
quattro corrispondono a -a, -p, -re -+ opzioni della riga di comando, rispettivamente.

ansi Usa il dialetto ANSI C del linguaggio C.

preansi
Usa il dialetto pre-ANSI definito dal libro di Kernighan & Ritchie.

Ritchie
Usa il dialetto definito dal compilatore Ritchie PDP-11 C.

cplusplus
Usa il linguaggio C++, piuttosto che il C.

[nessuna] richiesta
Attiva o disattiva il prompt in modalità interattiva.

[non]creare
Attiva o disattiva l'aggiunta di punto e virgola o parentesi graffe alle dichiarazioni
prodotto da cdecl. Questo corrisponde a -c opzione da linea di comando.

[nessun]debug
Attiva o disattiva le informazioni di debug.

[no]yydebug
Attiva o disattiva le informazioni di debug YACC.

Nota: le informazioni di debug e le informazioni di debug YACC sono disponibili solo se hanno
stato compilato in cdecl. Le ultime due opzioni corrispondono a -d ed -D riga di comando
opzioni, rispettivamente. Le informazioni di debug vengono normalmente utilizzate nello sviluppo del programma e
non è generalmente compilato in eseguibili distribuiti.

ESEMPI


Dichiarare un array di puntatori a funzioni simili malloc(3), fare

dichiara fptab come array del puntatore alla funzione che restituisce il puntatore a char

Il risultato di questo comando è

carattere *(*fptab[])()

Quando vedi questa dichiarazione nel codice di qualcun altro, puoi dargli un senso con
fare

spiega char *(*fptab[])()

La corretta dichiarazione per segnale(2), ignorando i prototipi di funzioni, è facilmente descritto in
cdeclla lingua di:

dichiarare il segnale come puntatore che restituisce la funzione alla funzione che restituisce void

che produce

vuoto (*segnale())()

La dichiarazione di funzione che ne risulta ha due serie di parentesi vuote. L'autore di
una tale funzione potrebbe chiedersi dove mettere i parametri:

dichiarare signal as function (arg1,arg2) che restituisce il puntatore alla funzione che restituisce void

fornisce la seguente soluzione (quando eseguito con il -c opzione):

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

Se vogliamo aggiungere nei prototipi di funzione, il prototipo di funzione per una funzione come
as _Uscita(2) sarebbe dichiarato con:

dichiara _exit as function (retvalue as int) restituendo void

dando

void _exit(int retvalore) { }

Come esempio più complesso utilizzando prototipi di funzioni, segnale(2) potrebbe essere completamente definito come:

dichiara segnale come funzione (x come int, y come puntatore a funzione (int) che restituisce void)
restituire il puntatore a function(int) restituire void

dare (con -c)

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

Cdecl può aiutare a capire dove inserire i modificatori "const" e "volatile"
dichiarazioni, quindi

dichiara foo come puntatore a const int



const int *pippo

while

dichiara foo come puntatore const a int



int * const pippo

C++ decl può aiutare con la dichiarazione dei riferimenti, quindi

dichiarare x come riferimento al puntatore al carattere



carattere *&x

C++ decl può aiutare con i puntatori al membro delle classi, dichiarando così un puntatore a un
membro intero di una classe X con

dichiara foo come puntatore al membro della classe X int



int X::*pippo

ed

dichiara foo come puntatore al membro della funzione di classe X (arg1, arg2) che restituisce il puntatore
alla classe Y



classe Y *(X::*pippo)(arg1, arg2)

DIAGNOSTICA


Le dichiarazioni di dichiarazione, cast e spiegazione cercano di evidenziare costruzioni che non lo sono
supportato in C. In alcuni casi, viene fatta un'ipotesi su ciò che era realmente previsto. In questi
casi, il risultato C è una dichiarazione giocattolo la cui semantica funzionerà solo in Algol-68. Il
l'elenco dei costrutti C non supportati dipende dalla versione del linguaggio C in uso
utilizzato (vedi le opzioni ANSI, pre-ANSI e Ritchie). L'insieme dei costrutti C++ supportati
è un superset del set ANSI, con l'eccezione del noalias parola chiave.

BIBLIOGRAFIA


Norma ANSI X3.159-1989 (ANSI C)

ISO/IEC 9899:1990 (lo standard ISO)

Le FAQ di comp.lang.c
http://www.eskimo.com/~scs/C-faq.top.html

Sezione 8.4 del Manuale di riferimento C all'interno I C Programmazione Lingua di B. Kernighan &
D. Richie.

Sezione 8 del Manuale di riferimento C++ all'interno I C++ Programmazione Lingua di B.
Stroustrup.

AVVERTENZE


La sintassi pseudo-inglese è eccessivamente verbosa.

C'è una grande quantità di controlli semantici che non vengono eseguiti.

Cdecl è stato scritto prima che lo standard ANSI C fosse completato e non è stato fatto alcun tentativo
per aggiornarlo. Tuttavia, è molto vicino allo standard, con l'ovvio
eccezione di noalias.

Cdecll'ambito di applicazione è intenzionalmente piccolo. Non ti aiuta a capire le inizializzazioni. Esso
si aspetta che le classi di memorizzazione siano all'inizio di una dichiarazione, seguite da the
modificatori const, volatile e noalias, seguiti dal tipo della variabile. Cdecl
non sa nulla sugli elenchi di argomenti a lunghezza variabile. (Questo include il ``, ...''
sintassi.)

Cdecl pensa che tutte le dichiarazioni che pronunci verranno usate come definizioni esterne.
Alcuni contesti di dichiarazione in C consentono una maggiore flessibilità. Un esempio di questo è:

dichiara argv come array di array di char

where cdecl risponde con

Avviso: non supportato in C -- "Array interno di dimensioni non specificate"
(forse intendi "array of pointer")
char argv[][]

Supporto provvisorio per il noalias la parola chiave è stata inserita perché era nella bozza ANSI
specifiche.

AUTORI


Originariamente scritto da Graham Ross, migliorato e ampliato da David Wolverton, Tony Hansen,
e Merlyn LeRoy.

Supporto GNU readline e port Linux di David R. Conrad,[email protected]>

Usa c++ decl online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

  • 1
    Aarch64-Linux-GNU-GNATBIND
    Aarch64-Linux-GNU-GNATBIND
    moscerino, moscerino, moscerino, moscerino,
    gnatfind, gnathtml, gnatkr, gnatlink,
    moscerini, gnatmake, gnatprep, gnatpsta,
    gnatpsys, gnatxref - cassetta degli attrezzi GNAT
    DESCRIZIONE: Il...
    Eseguire aarch64-linux-gnu-gnatbind
  • 2
    aarch64-linux-gnu-gnatchop-5
    aarch64-linux-gnu-gnatchop-5
    moscerino, moscerino, moscerino, moscerino,
    gnatfind, gnathtml, gnatkr, gnatlink,
    moscerini, gnatmake, gnatprep, gnatpsta,
    gnatpsys, gnatxref - cassetta degli attrezzi GNAT
    DESCRIZIONE: Il...
    Eseguire aarch64-linux-gnu-gnatchop-5
  • 3
    cpupower-idle-info
    cpupower-idle-info
    cpupower idle-info - Utilità per
    recuperare le informazioni sul kernel inattivo della cpu
    SINTASSI: cpupower [ -c cpulist ]
    idle-info [opzioni] DESCRIZIONE: Uno strumento
    che stampa p...
    Eseguire cpupower-idle-info
  • 4
    cpupower-idle-set
    cpupower-idle-set
    cpupower idle-set - Utilità per impostare cpu
    opzioni del kernel specifiche per lo stato inattivo
    SINTASSI: cpupower [ -c cpulist ]
    idle-info [opzioni] DESCRIZIONE: The
    cpupower inattivo-se...
    Eseguire cpupower-idle-set
  • 5
    g.mapsetsgrass
    g.mapsetsgrass
    g.mapsets - Modifica/stampa i file dell'utente
    percorso di ricerca mapset corrente. Colpisce il
    l'accesso dell'utente ai dati esistenti ai sensi del
    altri mapset nella posizione corrente. ...
    Eseguire g.mapsetsgrass
  • 6
    g.messagegrass
    g.messagegrass
    g.message - Stampa un messaggio, avviso,
    informazioni sullo stato di avanzamento o errore irreversibile nel file
    Modo ERBA. Questo modulo dovrebbe essere utilizzato in
    script per i messaggi forniti all'utente.
    CHIAVE...
    Esegui g.messagegrass
  • Di Più "

Ad