InglesPransesEspanyol

Ad


OnWorks favicon

c++decl - Online sa Cloud

Patakbuhin ang c++decl sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na c++decl na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


cdecl, c++decl - Gumawa ng mga deklarasyon ng uri ng C at C++

SINOPSIS


cdecl [-a | -+ | -p | -r] [-ciqdDV]
[[ file ...] | ipaliwanag ... | magpahayag ... | palayasin ... | itakda ... | Tulungan | ? ]
c++ decl [-a | -+ | -p | -r] [-ciqdDV]
[[ file ...] | ipaliwanag ... | magpahayag ... | palayasin ... | itakda ... | Tulungan | ? ]
ipaliwanag ...
magpahayag ...
palayasin ...

DESCRIPTION


Cdecl (At c++ decl) ay isang programa para sa pag-encode at pag-decode ng mga deklarasyon ng uri ng C (o C++).
Ang wikang C ay batay sa (iminungkahing draft) X3J11 ANSI Standard; opsyonal, ang C
ang wika ay maaaring batay sa pre-ANSI na kahulugan na tinukoy ng Kernighan at Ritchie's Ang C
Programming Wika aklat, o ang wikang C na tinukoy ng Ritchie PDP-11 C compiler.
Ang wikang C++ ay batay sa Bjarne Stroustrup's Ang C + + Programming Wika, kasama ang
bersyon 2.0 na mga karagdagan sa wika.

Opsyon


-a Gamitin ang ANSI C dialect ng C na wika.

-p Gamitin ang pre-ANSI dialect na tinukoy ng aklat ni Kernighan at Ritchie.

-r Gamitin ang dialect na tinukoy ng Ritchie PDP-11 C compiler.

-+ Gamitin ang wikang C++, sa halip na C.

-i Run in interactive mode (ang default kapag nagbabasa mula sa isang terminal). Ito rin
Ino-on ang pag-prompt, pag-edit ng linya, at history ng linya.

-q Tahimik ang prompt. Ino-off ang prompt sa interactive na mode.

-c Lumikha ng compilable C o C++ code bilang output. Cdecl ay magdaragdag ng semicolon sa dulo
ng isang deklarasyon at isang pares ng mga kulot na braces hanggang sa dulo ng isang kahulugan ng function.

-d I-on ang impormasyon sa pag-debug (kung pinagsama-sama).

-D I-on ang impormasyon sa pag-debug ng YACC (kung pinagsama-sama).

-V Ipakita ang impormasyon ng bersyon at lumabas.

PAGTATANGGI


Cdecl maaaring tawagin sa ilalim ng maraming iba't ibang pangalan (sa pamamagitan ng pagpapalit ng pangalan sa executable,
o paggawa ng symlink o hard link dito). Kung ito ay tinatawag bilang cdecl pagkatapos ANSI C ay ang
default na wika. Kung ito ay tinatawag bilang c++ decl pagkatapos ay C++ ang default. Kung ito ay itinatawag
bilang alinman ipaliwanag, palayasin, O magpahayag pagkatapos ito ay bigyang-kahulugan ang natitirang bahagi ng command line
mga opsyon bilang mga parameter sa utos na iyon, isagawa ang utos, at lumabas. Gagawin din nito
ito kung ang unang hindi lumipat na argumento sa command line ay isa sa tatlong utos na iyon.
Ang input ay maaari ding magmula sa isang file.

Cdecl binabasa ang pinangalanang mga file para sa mga pahayag sa wikang inilarawan sa ibaba. A
ginawa ang pagbabago mula sa wikang iyon patungo sa C (C++) o pseudo-English. Ang bunga ng
ang pagbabagong ito ay nakasulat sa karaniwang output. Kung walang mga file na pinangalanan, o isang filename
ng ``-'' ay nakatagpo, ang karaniwang input ay mababasa. Kung ang karaniwang input ay nagmumula sa a
terminal, (o ang -i ginagamit ang opsyon), isang prompt ang isusulat sa terminal bago ang bawat isa
linya. Maaaring i-off ang prompt ng -q opsyon (o ang itakda noprompt utos). Kung
cdecl ay tinatawag bilang ipaliwanag, magpahayag or palayasin, o ang unang argumento ay isa sa mga utos
tinalakay sa ibaba, ang listahan ng argumento ay bibigyang-kahulugan ayon sa ipinapakitang gramatika
sa ibaba sa halip na bilang mga pangalan ng file.

Kapag interactive itong pinapatakbo, cdecl gumagamit ng GNU readline library upang magbigay ng keyword
pagkumpleto at kasaysayan ng command line, katulad ng malakas na palo(1) (qv). Ang pagpindot sa TAB ay gagawin
kumpletuhin ang bahagyang keyword bago ang cursor, maliban kung mayroong higit sa isang posible
pagkumpleto, kung saan ang pangalawang TAB ay magpapakita ng listahan ng mga posibleng pagkumpleto at
muling ipakita ang command line. Ang kaliwa at kanang mga arrow key at backspace ay maaaring gamitin para sa
pag-edit sa natural na paraan, at ang pataas at pababang mga arrow key ay kinukuha ang mga nakaraang command line
mula sa kasaysayan. Karamihan sa iba pang pamilyar na key, gaya ng Ctrl-U para tanggalin ang lahat ng text mula sa
cursor pabalik sa simula ng linya, gumana gaya ng inaasahan. May kalabuan sa pagitan
ang int at sa mga keyword, ngunit cdecl ay hulaan kung alin ang iyong sinadya, at ito ay palaging hulaan
tama.

Maaari mong gamitin ang cdecl habang gumagawa ka ng isang C program na may katulad na editor vi(1) o emacs(1). Ikaw
i-type lamang ang pseudo-English na bersyon ng deklarasyon at ilapat cdecl bilang isang filter
sa linya. (Sa vi(1), i-type ang ``!!cdecl''.)

Kung ang lumikha programa opsyon -c ay ginagamit, ang output ay magsasama ng mga semi-colon pagkatapos
mga variable na deklarasyon at mga pares ng kulot na brace pagkatapos ng mga deklarasyon ng function.

Ang -V ang opsyon ay magpi-print ng mga numero ng bersyon ng mga file na ginamit upang likhain ang proseso.
Kung ang pinagmulan ay pinagsama-sama sa pag-debug na impormasyon na naka-on, ang -d paganahin ang opsyon
ito ay maging output. Kung ang pinagmulan ay pinagsama-samang may naka-on na impormasyon sa pag-debug ng YACC, ang
-D pagpipilian ay magbibigay-daan ito upang maging output.

COMMAND ANG WIKA


Mayroong anim na pahayag sa wika. Ang magpahayag Ang pahayag ay binubuo ng isang uri ng C
deklarasyon mula sa isang pandiwang paglalarawan. Ang palayasin Ang pahayag ay binubuo ng isang uri ng C cast bilang
maaaring lumitaw sa isang expression. Ang ipaliwanag ang pahayag ay nagde-decode ng isang uri ng C deklarasyon o
cast, na gumagawa ng isang verbose na paglalarawan. Ang Tulungan (O ?) na pahayag ay nagbibigay ng tulong
mensahe. Ang umalis (O lumabas) na pahayag (o ang dulo ng file) ay lumabas sa programa. Ang itakda
Ang pahayag ay nagpapahintulot sa mga opsyon sa command line na maitakda nang interactive. Ang bawat pahayag ay
pinaghihiwalay ng isang semi-colon o isang bagong linya.

MGA SINGKAT


Ang ilang kasingkahulugan ay pinahihintulutan sa panahon ng isang deklarasyon:

ang karakter ay kasingkahulugan ng char
Ang pare-pareho ay kasingkahulugan ng const
enumeration ay kasingkahulugan ng enum
Ang func ay kasingkahulugan ng function
integer ay isang kasingkahulugan para sa int
Ang ptr ay kasingkahulugan ng pointer
ref ay isang kasingkahulugan para sa sanggunian
ret ay kasingkahulugan ng pagbabalik
Ang istraktura ay kasingkahulugan ng struct
vector ay isang kasingkahulugan para sa array

Ang tampok na pagkumpleto ng TAB ay nakakaalam lamang tungkol sa mga keyword sa kanang column ng
istraktura, hindi ang mga nasa kaliwang hanay. Ang pagkumpleto ng TAB ay hindi gaanong kapaki-pakinabang kapag ang
ang mga nangungunang character ng iba't ibang mga keyword ay pareho (ang mga keyword ay sumasalungat sa isa
isa pa), at ang paglalagay ng parehong column ay magdudulot ng kaunting salungatan.

GRAMATIKA


Ang sumusunod na gramatika ay naglalarawan sa wika. Sa grammar, ang mga salita sa "<>" ay hindi-
mga terminal, ang mga bare lower-case na salita ay mga terminal na nakatayo para sa kanilang sarili. Hubad na upper-case
ang mga salita ay iba pang mga lexical na token: WALANG nangangahulugang walang laman na string; NAME ay nangangahulugang isang C identifier;
Ang NUMBER ay nangangahulugang isang string ng mga decimal na digit; at NL ay nangangahulugang ang bagong-linya o semi-colon
character.

::= WALA
| NL
::= WALA
| ideklara ang PANGALAN bilang
| magpahayag
| ilagay ang NAME sa
| cast
| ipaliwanag
| ipaliwanag
| ipaliwanag ( ) opsyonal-NAME
| itakda
| tulong | ?
| huminto
| labasan
::= array ng
| array NUMBER ng
| pagbabalik ng function
| function ( ) bumabalik
| pointer sa
| pointer sa miyembro ng klase NAME
| sanggunian sa
|
::=
| *
| NAME :: *
| at
::= ( )
| ( )
| [ ]
| [ NUMBER ]
| ( )
| PANGALAN
::= WALA
| ( )
| ( ) ( )
| ( ) ( )
| ( )
| NAME :: *
| *
| at
| [ ]
| [ NUMBER ]
::= |
|
| struct NAME | unyon NAME | enum NAME | pangalan ng klase
::= ,
|
|
::= ,
| WALA
|
|
| bilang
::= int | char | doble | lumutang | walang bisa
::= |
::= maikli | mahaba | hindi nalagdaan | nilagdaan |
::= | WALA
::= const | pabagu-bago ng isip | noalias
::= auto | panlabas | magparehistro | static
::= WALA |
::= WALA |
| lumikha | nocreate
| prompt | noprompt
| richie | preansi | ansi | cplusplus
| i-debug | nodebug | yydebug | noyydebug

Itakda Opsyon


Ang itakda utos ay tumatagal ng ilang mga pagpipilian. Maaari kang mag-type itakda or itakda pagpipilian upang makita ang
kasalukuyang napiling mga opsyon at isang buod ng mga opsyon na magagamit. Ang una
apat ang tumutugma sa -a, -p, -r, at -+ mga opsyon sa command line, ayon sa pagkakabanggit.

ansi Gamitin ang diyalektong ANSI C ng wikang C.

preansi
Gamitin ang pre-ANSI dialect na tinukoy ng aklat ni Kernighan at Ritchie.

ritchie
Gamitin ang dialect na tinukoy ng Ritchie PDP-11 C compiler.

cplusplus
Gamitin ang wikang C++, sa halip na C.

[no]prompt
I-on o i-off ang prompt sa interactive na mode.

[walang] lumikha
I-on o i-off ang pagdugtong ng semicolon o curly braces sa mga deklarasyon
output ng cdecl. Ito ay tumutugma sa -c opsyon na command line.

[walang]debug
I-on o i-off ang impormasyon sa pag-debug.

[no]yydebug
I-on o i-off ang impormasyon sa pag-debug ng YACC.

Tandaan: ang impormasyon sa pag-debug at impormasyon sa pag-debug ng YACC ay magagamit lamang kung mayroon sila
ay pinagsama-sama sa cdecl. Ang huling dalawang opsyon ay tumutugma sa -d at -D command line
mga pagpipilian, ayon sa pagkakabanggit. Ang impormasyon sa pag-debug ay karaniwang ginagamit sa pagbuo ng programa, at
ay hindi karaniwang pinagsama-sama sa mga distributed executable.

HALIMBAWA


Upang magdeklara ng isang hanay ng mga pointer sa mga function na tulad ng malloc(3), gawin

ideklara ang fptab bilang array ng pointer upang gumana ang pagbabalik ng pointer sa char

Ang resulta ng utos na ito ay

char *(*fptab[])()

Kapag nakita mo ang deklarasyon na ito sa code ng ibang tao, maiintindihan mo ito sa pamamagitan ng
paggawa

ipaliwanag ang char *(*fptab[])()

Ang wastong deklarasyon para sa senyas(2), hindi pinapansin ang mga prototype ng function, ay madaling inilarawan sa
cdeclwika ni:

magdeklara ng signal bilang function na bumabalik na pointer sa function na bumabalik na walang bisa

na gumagawa

walang bisa (*signal())()

Ang deklarasyon ng function na ang mga resulta ay may dalawang hanay ng mga walang laman na panaklong. Ang may-akda ng
maaaring magtaka ang naturang function kung saan ilalagay ang mga parameter:

magdeklara ng signal bilang function (arg1,arg2) returning pointer to function returning void

nagbibigay ng sumusunod na solusyon (kapag tumakbo kasama ang -c opsyon):

walang bisa (*signal(arg1,arg2))() { }

Kung gusto naming idagdag sa mga prototype ng function, ang prototype ng function para sa isang function na tulad
as _lumabas(2) ay idedeklara na may:

ideklara ang _exit bilang function (retvalue as int) na nagbabalik na walang bisa

bigay

void _exit(int retvalue) { }

Bilang isang mas kumplikadong halimbawa gamit ang mga prototype ng function, senyas(2) ay maaaring ganap na tukuyin bilang:

ideklara ang signal bilang function(x bilang int, y bilang pointer sa function(int) na nagbabalik na walang bisa)
ibinabalik ang pointer sa function(int) returning void

pagbibigay (na may -c)

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

Cdecl ay maaaring makatulong na malaman kung saan ilalagay ang "const" at "volatile" na mga modifier
mga deklarasyon, kaya

ideklara ang foo bilang pointer sa const int

Binibigyan

const int *foo

habang

ideklara ang foo bilang const pointer sa int

Binibigyan

int * const foo

C++ decl ay maaaring makatulong sa pagdedeklara ng mga sanggunian, kaya

ideklara ang x bilang reference sa pointer sa character

Binibigyan

char *&x

C++ decl ay maaaring makatulong sa mga pointer sa miyembro ng mga klase, kaya nagdedeklara ng pointer sa isang
miyembro ng integer ng isang klase X na may

ideklara ang foo bilang pointer sa miyembro ng class X int

Binibigyan

int X::*foo

at

ideklara ang foo bilang pointer sa miyembro ng class X function (arg1, arg2) na bumabalik na pointer
sa klase Y

Binibigyan

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

DIAGNOSTICS


Ang mga pahayag na nagdeklara, nagsumite at nagpapaliwanag ay sinusubukang ituro ang mga konstruksyon na hindi
suportado sa C. Sa ilang mga kaso, ang isang hula ay ginawa kung ano ang talagang nilayon. Sa mga ito
kaso, ang C resulta ay isang laruang deklarasyon na ang semantika ay gagana lamang sa Algol-68. Ang
Ang listahan ng mga hindi sinusuportahang konstruksyon ng C ay nakasalalay sa kung aling bersyon ng wikang C ang ginagamit
ginamit (tingnan ang mga opsyon sa ANSI, pre-ANSI, at Ritchie). Ang hanay ng mga sinusuportahang C++ construct
ay isang superset ng ANSI set, maliban sa noalias keyword

Mga sanggunian


ANSI Standard X3.159-1989 (ANSI C)

ISO/IEC 9899:1990 (ang pamantayang ISO)

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

Seksyon 8.4 ng C Reference Manual sa loob Ang C Programming Wika ni B. Kernighan &
D. Ritchie.

Seksyon 8 ng C++ Reference Manual sa loob Ang C + + Programming Wika ni B.
Stroustrup.

MGA CAVEATS


Ang pseudo-English syntax ay sobrang verbose.

Mayroong isang kayamanan ng semantic checking na hindi ginagawa.

Cdecl ay isinulat bago natapos ang pamantayan ng ANSI C, at walang nagawang pagtatangka
upang dalhin ito up-to-date. Gayunpaman, ito ay napakalapit sa pamantayan, na may halata
pagbubukod ng noalias.

CdeclAng saklaw ni ay sadyang maliit. Hindi ito nakakatulong sa iyo na malaman ang mga initialization. Ito
inaasahan na ang mga klase ng imbakan ay nasa simula ng isang deklarasyon, na sinusundan ng
const, volatile at noalias modifiers, na sinusundan ng uri ng variable. Cdecl
ay walang alam tungkol sa mga listahan ng argumento ng variable na haba. (Kabilang dito ang ``, ...''
syntax.)

Cdecl iniisip na ang lahat ng mga pahayag na iyong binigkas ay gagamitin bilang mga panlabas na kahulugan.
Ang ilang mga konteksto ng deklarasyon sa C ay nagbibigay-daan sa higit na kakayahang umangkop kaysa dito. Ang isang halimbawa nito ay:

idedeklara ang argv bilang array ng array ng char

saan cdecl tumutugon ng

Babala: Hindi suportado sa C -- 'Inner array of unspecified size'
(marahil ang ibig mong sabihin ay "array of pointer")
char argv[][]

Pansamantalang suporta para sa noalias inilagay ang keyword dahil nasa draft na ANSI ito
mga pagtutukoy.

MGA AUTHORS


Orihinal na isinulat ni Graham Ross, pinahusay at pinalawak ni David Wolverton, Tony Hansen,
at Merlyn LeRoy.

GNU readline support at Linux port ni David R. Conrad,[protektado ng email]>

Gumamit ng c++decl online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad