InggrisPerancisSpanyol

Ad


favorit OnWorks

c++decl - Online di Cloud

Jalankan c++decl di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah perintah c++decl yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


cdecl, c++decl - Menulis deklarasi tipe C dan C++

RINGKASAN


cdecl [-sebuah | -+ | -p | -r] [-ciqdDV]
[[ arsip ...] | menjelaskan ... | menyatakan ... | cast ... | set ... | membantu | ? ]
c++deklarasi [-sebuah | -+ | -p | -r] [-ciqdDV]
[[ arsip ...] | menjelaskan ... | menyatakan ... | cast ... | set ... | membantu | ? ]
menjelaskan ...
menyatakan ...
cast ...

DESKRIPSI


CDC (Dan c++deklarasi) adalah program untuk encoding dan decoding deklarasi tipe C (atau C++).
Bahasa C didasarkan pada (draf yang diusulkan) Standar ANSI X3J11; opsional, C
bahasa mungkin didasarkan pada definisi pra-ANSI yang didefinisikan oleh Kernighan & Ritchie's Grafik C
Pemrograman Bahasa buku, atau bahasa C yang ditentukan oleh kompiler Ritchie PDP-11 C.
Bahasa C++ didasarkan pada bahasa Bjarne Stroustrup Grafik C + + Pemrograman Bahasa, ditambah
versi 2.0 tambahan untuk bahasa.

PILIHAN


-a Gunakan dialek ANSI C dari bahasa C.

-p Gunakan dialek pra-ANSI yang ditentukan oleh buku Kernighan & Ritchie.

-r Gunakan dialek yang ditentukan oleh compiler Ritchie PDP-11 C.

-+ Gunakan bahasa C++, bukan C.

-i Jalankan dalam mode interaktif (default saat membaca dari terminal). Ini juga
menyalakan prompt, pengeditan baris, dan riwayat baris.

-q Mendiamkan prompt. Mematikan prompt dalam mode interaktif.

-c Buat kode C atau C++ yang dapat dikompilasi sebagai output. CDC akan menambahkan titik koma di akhir
deklarasi dan sepasang kurung kurawal di akhir definisi fungsi.

-d Aktifkan informasi debug (jika dikompilasi).

-D Mengaktifkan informasi debug YACC (jika dikompilasi).

-V Menampilkan informasi versi dan keluar.

MEMINTA


CDC dapat dipanggil dengan sejumlah nama berbeda (dengan mengganti nama file yang dapat dieksekusi,
atau membuat symlink atau tautan keras ke sana). Jika dipanggil sebagai cdecl maka ANSI C adalah
bahasa bawaan. Jika dipanggil sebagai c++deklarasi maka C++ adalah default. Jika dipanggil
sebagai baik menjelaskan, cast, atau menyatakan maka itu akan menafsirkan sisa baris perintah
pilihan sebagai parameter untuk perintah itu, jalankan perintah, dan keluar. Itu juga akan berhasil
ini jika argumen non-switch pertama pada baris perintah adalah salah satu dari tiga perintah tersebut.
Input juga dapat berasal dari file.

CDC membaca file bernama untuk pernyataan dalam bahasa yang dijelaskan di bawah ini. A
transformasi dibuat dari bahasa itu ke C (C++) atau pseudo-Inggris. Hasil dari
transformasi ini ditulis pada output standar. Jika tidak ada file yang diberi nama, atau nama file
dari ``-'' ditemui, input standar akan dibaca. Jika input standar berasal dari a
terminal, (atau -i opsi digunakan), prompt akan ditulis ke terminal sebelum masing-masing
garis. Prompt dapat dimatikan oleh -q pilihan (atau set tidak segera memerintah). Jika
cdecl dipanggil sebagai menjelaskan, menyatakan or cast, atau argumen pertama adalah salah satu perintah
dibahas di bawah ini, daftar argumen akan ditafsirkan sesuai dengan tata bahasa yang ditampilkan
di bawah ini alih-alih sebagai nama file.

Ketika dijalankan secara interaktif, cdecl menggunakan perpustakaan readline GNU untuk menyediakan kata kunci
penyelesaian dan riwayat baris perintah, sangat mirip menampar(1) (qv). Menekan TAB akan
lengkapi kata kunci parsial sebelum kursor, kecuali ada lebih dari satu yang memungkinkan
penyelesaian, dalam hal ini TAB kedua akan menampilkan daftar kemungkinan penyelesaian dan
menampilkan kembali baris perintah. Tombol panah kiri dan kanan dan spasi mundur dapat digunakan untuk
mengedit secara alami, dan tombol panah atas dan bawah mengambil baris perintah sebelumnya
dari sejarah. Kebanyakan tombol familiar lainnya, seperti Ctrl-U untuk menghapus semua teks dari
kursor kembali ke awal baris, bekerja seperti yang diharapkan. Ada ambiguitas antara
itu int dan ke kata kunci, tapi cdecl akan menebak yang mana yang Anda maksud, dan itu selalu menebak
benar.

Anda dapat menggunakan cdecl saat Anda membuat program C dengan editor seperti vi(1) atau emacs(1). Anda
cukup ketik versi pseudo-Inggris dari deklarasi dan terapkan cdecl sebagai penyaring
ke garis. (Di dalam vi(1), ketik ``!!cdecl''.)

Jika membuat program Option -c digunakan, output akan menyertakan titik koma setelah
deklarasi variabel dan pasangan kurung kurawal setelah deklarasi fungsi.

Grafik -V opsi akan mencetak nomor versi file yang digunakan untuk membuat proses.
Jika sumber dikompilasi dengan informasi debug dihidupkan, -d opsi akan mengaktifkan
itu menjadi keluaran. Jika sumber dikompilasi dengan informasi debug YACC dihidupkan,
-D opsi akan memungkinkannya menjadi output.

COMMAND BAHASA


Ada enam pernyataan dalam bahasa tersebut. NS menyatakan pernyataan membentuk tipe C
deklarasi dari deskripsi verbose. NS cast pernyataan menyusun pemeran tipe C sebagai
mungkin muncul dalam ekspresi. NS menjelaskan pernyataan mendekode deklarasi tipe C atau
cast, menghasilkan deskripsi verbose. NS membantu (Atau ?) pernyataan memberikan bantuan
pesan. NS berhenti (Atau keluar) pernyataan (atau akhir file) keluar dari program. NS set
pernyataan memungkinkan opsi baris perintah diatur secara interaktif. Setiap pernyataan adalah
dipisahkan oleh titik koma atau baris baru.

SINKRONISASI


Beberapa sinonim diizinkan selama deklarasi:

karakter adalah sinonim untuk char
konstanta adalah sinonim dari konstanta
enumerasi adalah sinonim untuk enum
func adalah sinonim dari fungsi
integer adalah sinonim untuk int
ptr adalah sinonim untuk pointer
ref adalah sinonim untuk referensi
ret adalah sinonim untuk kembali
struktur adalah sinonim untuk struktur
vektor adalah sinonim untuk array

Fitur penyelesaian TAB hanya tahu tentang kata kunci di kolom kanan
struktur, bukan yang ada di kolom kiri. Penyelesaian TAB jauh kurang berguna ketika
karakter utama dari kata kunci yang berbeda adalah sama (kata kunci bertentangan dengan satu)
lain), dan memasukkan kedua kolom akan menyebabkan beberapa konflik.

TATABAHASA


Tata bahasa berikut menjelaskan bahasa tersebut. Dalam tata bahasa, kata-kata dalam "<>" adalah non-
terminal, kata-kata dengan huruf kecil adalah terminal yang berdiri sendiri. Telanjang huruf besar
kata-kata adalah token leksikal lainnya: NOTHING berarti string kosong; NAMA berarti pengenal C;
NUMBER berarti serangkaian angka desimal; dan NL berarti baris baru atau titik koma
karakter.

::= TIDAK ADA
| NL
::= TIDAK ADA
| nyatakan NAMA sebagai
| menyatakan
| masukkan NAME ke dalam
| Pemeran
| menjelaskan
| menjelaskan
| menjelaskan ( ) opsional-NAME
| mengatur
| bantuan | ?
| berhenti
| keluar
::= array dari
| larik NUMBER dari
| fungsi kembali
| fungsi ( ) kembali
| penunjuk ke
| pointer ke anggota kelas NAME
| mengacu kepada
|
::=
| *
| NAMA :: *
| &
::= ( )
| ( )
| [ ]
| [ NOMOR ]
| ( )
| NAMA
::= TIDAK ADA
| ( )
| ( ) ( )
| ( ) ( )
| ( )
| NAMA :: *
| *
| &
| [ ]
| [ NOMOR ]
::= |
|
| NAMA struktur | NAMA serikat | enum NAMA | nama kelas
::= ,
|
|
::= ,
| TIDAK ADA APA-APA
|
|
| sebagai
::= int | arang | ganda | mengapung | ruang kosong
::= |
::= pendek | panjang | tidak ditandatangani | ditandatangani |
::= | TIDAK ADA APA-APA
::= konstan | mudah menguap | noalias
::= otomatis | luar | daftar | statis
::= TIDAK ADA |
::= TIDAK ADA |
| buat | tidak membuat
| cepat | tidak segera
| ritchie | preansi | ansi | cplusplus
| debug | bug simpul | yydebug | tidak ada apa-apanya

SET PILIHAN


Grafik set perintah mengambil beberapa opsi. Anda dapat mengetik set or set Pilihan untuk melihat
opsi yang saat ini dipilih dan ringkasan opsi yang tersedia. Pertama
empat sesuai dengan -a, -p, -r, dan -+ opsi baris perintah, masing-masing.

ansi Gunakan dialek ANSI C dari bahasa C.

preansi
Gunakan dialek pra-ANSI yang ditentukan oleh buku Kernighan & Ritchie.

Ritchie
Gunakan dialek yang ditentukan oleh compiler Ritchie PDP-11 C.

cplusplus
Gunakan bahasa C++, bukan C.

[tidak] cepat
Aktifkan atau nonaktifkan prompt dalam mode interaktif.

[tidak]buat
Mengaktifkan atau menonaktifkan penambahan titik koma atau kurung kurawal ke deklarasi
keluaran oleh cdecl. Ini sesuai dengan -c opsi baris perintah.

[tidak] debug
Aktifkan atau nonaktifkan informasi debug.

[tidak]yydebug
Mengaktifkan atau menonaktifkan informasi debug YACC.

Catatan: informasi debug dan informasi debug YACC hanya tersedia jika ada
telah dikompilasi menjadi cdecl. Dua opsi terakhir sesuai dengan -d dan -D command line
pilihan, masing-masing. Informasi debug biasanya digunakan dalam pengembangan program, dan
umumnya tidak dikompilasi ke dalam executable terdistribusi.

CONTOH


Untuk mendeklarasikan array pointer ke fungsi yang seperti malloc(3), lakukan

mendeklarasikan fptab sebagai array pointer ke fungsi mengembalikan pointer ke char

Hasil dari perintah ini adalah

karakter *(*fptab[])()

Ketika Anda melihat deklarasi ini dalam kode orang lain, Anda dapat memahaminya dengan
melakukan

jelaskan char *(*fptab[])()

Deklarasi yang tepat untuk sinyal(2), mengabaikan prototipe fungsi, mudah dijelaskan dalam
cdeclbahasa:

mendeklarasikan sinyal sebagai fungsi yang mengembalikan pointer ke fungsi yang mengembalikan void

yang menghasilkan

batal (*sinyal())()

Deklarasi fungsi yang dihasilkan memiliki dua set tanda kurung kosong. Penulis
fungsi seperti itu mungkin bertanya-tanya di mana harus meletakkan parameter:

mendeklarasikan sinyal sebagai fungsi (arg1,arg2) mengembalikan pointer ke fungsi mengembalikan void

memberikan solusi berikut (ketika dijalankan dengan -c pilihan):

batal (*sinyal(arg1,arg2))() { }

Jika kita ingin menambahkan prototipe fungsi, prototipe fungsi untuk fungsi seperti:
as _keluar(2) akan dinyatakan dengan:

mendeklarasikan _exit sebagai fungsi (retvalue sebagai int) mengembalikan void

pemberian

void _exit(int retvalue) {}

Sebagai contoh yang lebih kompleks menggunakan prototipe fungsi, sinyal(2) dapat sepenuhnya didefinisikan sebagai:

mendeklarasikan sinyal sebagai fungsi (x sebagai int, y sebagai penunjuk ke fungsi (int) mengembalikan batal)
mengembalikan pointer ke function(int) mengembalikan void

memberi (dengan -c)

batal (*sinyal(int x, batal (*y)(int )))(int ) { }

CDC dapat membantu mencari tahu di mana menempatkan pengubah "const" dan "volatile" di
deklarasi, dengan demikian

mendeklarasikan foo sebagai pointer ke const int

memberikan

const ke dalam *foo

sementara

mendeklarasikan foo sebagai pointer const ke int

memberikan

int * const foo

C++ deklarasi dapat membantu dengan mendeklarasikan referensi, jadi

mendeklarasikan x sebagai referensi ke pointer ke karakter

memberikan

karakter *&x

C++ deklarasi dapat membantu dengan pointer ke anggota kelas, sehingga mendeklarasikan pointer ke sebuah
anggota bilangan bulat dari kelas X dengan

mendeklarasikan foo sebagai pointer ke anggota kelas X int

memberikan

ke dalam X::*foo

dan

mendeklarasikan foo sebagai pointer ke anggota fungsi kelas X (arg1, arg2) mengembalikan pointer
ke kelas Y

memberikan

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

DIAGNOSTIK


Pernyataan menyatakan, melemparkan, dan menjelaskan mencoba menunjukkan konstruksi yang tidak
didukung dalam C. Dalam beberapa kasus, ada dugaan tentang apa yang sebenarnya dimaksudkan. Dalam ini
kasus, hasil C adalah deklarasi mainan yang semantiknya hanya akan berfungsi di Algol-68. NS
daftar konstruksi C yang tidak didukung tergantung pada versi bahasa C mana yang digunakan
digunakan (lihat opsi ANSI, pra-ANSI, dan Ritchie). Kumpulan konstruksi C++ yang didukung
adalah superset dari himpunan ANSI, dengan pengecualian noalias kata kunci.

REFERENSI


Standar ANSI X3.159-1989 (ANSI C)

ISO/IEC 9899:1990 (standar ISO)

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

Bagian 8.4 dari Manual Referensi C di dalam Grafik C Pemrograman Bahasa oleh B. Kernighan &
D.Ritchie.

Bagian 8 dari Manual Referensi C++ di dalam Grafik C + + Pemrograman Bahasa oleh B
Strostrup.

PERINGATAN


Sintaks pseudo-Inggris terlalu bertele-tele.

Ada banyak pemeriksaan semantik yang tidak dilakukan.

CDC ditulis sebelum standar ANSI C selesai, dan tidak ada upaya yang dilakukan
untuk membawanya up-to-date. Namun demikian, ini sangat dekat dengan standar, dengan yang jelas
pengecualian noalias.

CDCruang lingkupnya sengaja dibuat kecil. Itu tidak membantu Anda mengetahui inisialisasi. Dia
mengharapkan kelas penyimpanan berada di awal deklarasi, diikuti oleh
const, volatile dan noalias modifiers, diikuti dengan tipe variabelnya. CDC
tidak tahu apa-apa tentang daftar argumen panjang variabel. (Ini termasuk ``...''
sintaksis.)

CDC berpikir semua deklarasi yang Anda ucapkan akan digunakan sebagai definisi eksternal.
Beberapa konteks deklarasi dalam C memungkinkan lebih banyak fleksibilitas daripada ini. Contoh dari ini adalah:

mendeklarasikan argv sebagai array dari array char

dimana cdecl merespon dengan

Peringatan: Tidak didukung di C -- 'Array bagian dalam dengan ukuran tidak ditentukan'
(mungkin maksud Anda "array of pointer")
karakter argv[][]

Dukungan tentatif untuk noalias kata kunci dimasukkan karena ada di draf ANSI
spesifikasi.

PENULIS


Awalnya ditulis oleh Graham Ross, ditingkatkan dan diperluas oleh David Wolverton, Tony Hansen,
dan Merlyn Le Roy.

Dukungan readline GNU dan port Linux oleh David R. Conrad,[email dilindungi]>

Gunakan c++decl online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad