Ini adalah perintah aarch64-linux-gnu-cpp-4.9 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
cpp - Praprosesor C
RINGKASAN
cpp [-Dmakro[=defn]...] [-Umakro]
[-Idir...] [-Saya mengutipdir...]
[-Wmemperingatkan...]
[-M|-MM] [-MG] [-MF nama file]
[-MP] [-MQ target...]
[-MT target...]
[-P] [-fno-working-direktori]
[-x bahasa] [-std=standard]
masuk file keluar
Hanya opsi yang paling berguna yang tercantum di sini; lihat di bawah untuk sisanya.
DESKRIPSI
Preprosesor C, sering dikenal sebagai cpp, Adalah makro prosesor yang digunakan secara otomatis oleh
compiler C untuk mengubah program Anda sebelum kompilasi. Ini disebut makro
prosesor karena memungkinkan Anda untuk mendefinisikan Macro, yang merupakan singkatan singkat untuk lebih panjang
konstruksi.
Preprosesor C dimaksudkan untuk digunakan hanya dengan kode sumber C, C++, dan Objective-C.
Di masa lalu, telah disalahgunakan sebagai pengolah teks umum. Ini akan tersedak input yang
tidak mematuhi aturan leksikal C. Misalnya, apostrof akan ditafsirkan sebagai
awal konstanta karakter, dan menyebabkan kesalahan. Juga, Anda tidak bisa mengandalkannya
melestarikan karakteristik input yang tidak signifikan untuk bahasa keluarga C.
Jika Makefile telah diproses sebelumnya, semua hard tab akan dihapus, dan Makefile akan
tidak bekerja.
Karena itu, Anda sering dapat lolos dengan menggunakan cpp pada hal-hal yang bukan C. Lainnya
Bahasa pemrograman algol sering kali aman (Pascal, Ada, dll.) Begitu juga dengan assembly, dengan
hati hati. -tradisional-cpp mode mempertahankan lebih banyak ruang putih, dan sebaliknya lebih banyak
permisif. Banyak masalah dapat dihindari dengan menulis komentar gaya C atau C++
alih-alih komentar bahasa asli, dan menjaga makro tetap sederhana.
Jika memungkinkan, Anda harus menggunakan praprosesor yang disesuaikan dengan bahasa yang Anda tulis
in. Versi modern dari assembler GNU memiliki fasilitas makro. Tingkat paling tinggi
bahasa pemrograman memiliki kompilasi bersyarat dan mekanisme penyertaan mereka sendiri. Jika
semuanya gagal, coba prosesor teks umum yang benar, seperti GNU M4.
Preprosesor C bervariasi dalam beberapa detail. Manual ini membahas praprosesor GNU C, yang
menyediakan superset kecil fitur ISO Standard C. Dalam mode default, GNU
C preprocessor tidak melakukan beberapa hal yang disyaratkan oleh standar. Ini adalah fitur
yang jarang, jika pernah, digunakan, dan dapat menyebabkan perubahan yang mengejutkan pada makna a
program yang tidak mengharapkan mereka. Untuk mendapatkan Standar ISO C yang ketat, Anda harus menggunakan
-std=c90, -std=c99 or -std=c11 pilihan, tergantung pada versi standar Anda
mau. Untuk mendapatkan semua diagnostik wajib, Anda juga harus menggunakan -bengah.
Manual ini menjelaskan perilaku praprosesor ISO. Untuk meminimalkan serampangan
perbedaan, di mana perilaku praprosesor ISO tidak bertentangan dengan tradisional
semantik, preprocessor tradisional harus berperilaku dengan cara yang sama. Berbagai
perbedaan yang ada dirinci di bagian Tradisional mode.
Untuk kejelasan, kecuali disebutkan lain, referensi ke CPP dalam manual ini lihat GNU CPP.
PILIHAN
Preprocessor C mengharapkan dua nama file sebagai argumen, masuk dan file keluar. itu
praprosesor membaca masuk bersama dengan file lain yang ditentukan dengan #include. Semua
output yang dihasilkan oleh file input gabungan ditulis dalam file keluar.
Salah satu masuk or file keluar mungkin -, yang sebagai masuk berarti membaca dari input standar dan
as file keluar berarti menulis ke output standar. Juga, jika salah satu file dihilangkan, itu berarti
sama seperti jika - telah ditentukan untuk file itu.
Kecuali dinyatakan lain, atau opsi berakhir di =, semua opsi yang mengambil argumen mungkin
agar argumen itu muncul segera setelah opsi, atau dengan spasi di antara
opsi dan argumen: -ifoo dan -I foo memiliki efek yang sama.
Banyak opsi memiliki nama multi-huruf; oleh karena itu beberapa opsi satu huruf mungkin tidak be
dikelompokkan: -dM sangat berbeda dari -d -M.
-D nama
Tetapkan nama sebagai makro, dengan definisi 1.
-D nama=definisi
Isi dari definisi tokenized dan diproses seolah-olah mereka muncul selama
fase terjemahan tiga dalam a #menetapkan pengarahan. Secara khusus, definisinya adalah
dipotong oleh karakter baris baru yang disematkan.
Jika Anda menggunakan praprosesor dari shell atau program seperti shell, Anda mungkin perlu
untuk menggunakan sintaks kutipan shell untuk melindungi karakter seperti spasi yang memiliki
makna dalam sintaks shell.
Jika Anda ingin mendefinisikan makro seperti fungsi pada baris perintah, tulis argumennya
list dengan tanda kurung di sekelilingnya sebelum tanda sama dengan (jika ada). Tanda kurung adalah
berarti bagi sebagian besar shell, jadi Anda perlu mengutip opsi. Dengan sh dan csh,
-D'nama(argumen...)=definisi' bekerja.
-D dan -U opsi diproses dalam urutan yang diberikan pada baris perintah. Semua
-imacros fillet dan -termasuk fillet opsi diproses setelah semua -D dan -U Pilihan.
-U nama
Batalkan definisi sebelumnya dari nama, baik bawaan atau dilengkapi dengan -D .
-def
Jangan menentukan makro khusus sistem atau makro khusus GCC. Standar yang telah ditentukan
makro tetap ditentukan.
-I dir
Tambahkan direktori dir ke daftar direktori yang akan dicari file headernya.
Direktori bernama oleh -I dicari sebelum sistem standar menyertakan direktori.
Jika direktori dir adalah sistem standar termasuk direktori, opsi ini diabaikan untuk
memastikan bahwa urutan pencarian default untuk direktori sistem dan perlakuan khusus
header sistem tidak dikalahkan. Jika dir dimulai dengan "=", maka "=" akan menjadi
diganti dengan awalan sysroot; Lihat --sysroot dan -isysroot.
-o fillet
Tulis keluaran ke fillet. Ini sama dengan menentukan fillet sebagai non-opsi kedua
argumen untuk cpp. gcc memiliki interpretasi yang berbeda dari argumen non-opsi kedua,
jadi kamu harus menggunakan -o untuk menentukan file keluaran.
-Dinding
Mengaktifkan semua peringatan opsional yang diinginkan untuk kode normal. Saat ini
is -komentar, -Wtrigraph, -Wmultichar dan peringatan tentang promosi bilangan bulat yang menyebabkan a
perubahan tanda masuk ekspresi "#if". Perhatikan bahwa banyak peringatan praprosesor
aktif secara default dan tidak memiliki opsi untuk mengontrolnya.
-komentar
-komentar
Peringatkan setiap kali urutan komentar-mulai /* muncul di /* komentar, atau kapan pun a
garis miring terbalik-baris baru muncul di a // komentar. (Kedua bentuk memiliki efek yang sama.)
-Wtrigraph
Sebagian besar trigraf dalam komentar tidak dapat memengaruhi makna program. Namun,
trigraph yang akan membentuk baris baru yang lolos (??/ di akhir baris) bisa, dengan
mengubah tempat komentar dimulai atau diakhiri. Oleh karena itu, hanya trigraf yang akan terbentuk
baris baru yang lolos menghasilkan peringatan di dalam komentar.
Pilihan ini tersirat oleh -Dinding. Jika -Dinding tidak diberikan, opsi ini masih diaktifkan
kecuali trigraph diaktifkan. Untuk mendapatkan konversi trigraf tanpa peringatan, tetapi dapatkan
yang lain -Dinding peringatan, gunakan -trigraf -Dinding -Wno-trigraf.
-Tradisional
Peringatkan tentang konstruksi tertentu yang berperilaku berbeda dalam tradisional dan ISO C. Juga
memperingatkan tentang konstruksi ISO C yang tidak memiliki padanan C tradisional, dan bermasalah
konstruksi yang harus dihindari.
-Wundef
Peringatkan setiap kali pengidentifikasi yang bukan makro ditemukan di #jika direktif,
di luar didefinisikan. Pengidentifikasi tersebut diganti dengan nol.
-Wunused-makro
Peringatkan tentang makro yang ditentukan dalam file utama yang tidak digunakan. Sebuah makro adalah bekas jika memang
diperluas atau diuji keberadaannya setidaknya sekali. Praprosesor juga akan memperingatkan jika
makro belum digunakan pada saat didefinisikan ulang atau tidak ditentukan.
Makro bawaan, makro yang ditentukan pada baris perintah, dan makro yang ditentukan dalam include
file tidak diperingatkan.
Catatan: Jika makro benar-benar digunakan, tetapi hanya digunakan dalam blok kondisional yang dilewati, maka
CPP akan melaporkannya sebagai tidak digunakan. Untuk menghindari peringatan dalam kasus seperti itu, Anda mungkin meningkatkan
cakupan definisi makro dengan, misalnya, memindahkannya ke yang pertama dilewati
memblokir. Atau, Anda dapat memberikan penggunaan dummy dengan sesuatu seperti:
#jika didefinisikan the_macro_causing_the_warning
#berakhir jika
-Wendif-label
Peringatkan setiap kali #lain atau #berakhir jika diikuti oleh teks. Ini biasanya terjadi di
kode formulir
#jika FOO
...
#lain FOO
...
#endif FOO
"FOO" kedua dan ketiga harus ada di komentar, tetapi sering kali tidak ada di program lama.
Peringatan ini aktif secara default.
-Kesalahan
Jadikan semua peringatan menjadi kesalahan yang sulit. Kode sumber yang memicu peringatan adalah
ditolak.
-Wsystem-header
Mengeluarkan peringatan untuk kode di header sistem. Ini biasanya tidak membantu dalam menemukan
bug dalam kode Anda sendiri, oleh karena itu ditekan. Jika Anda bertanggung jawab atas sistem
perpustakaan, Anda mungkin ingin melihatnya.
-w Menekan semua peringatan, termasuk yang dikeluarkan oleh GNU CPP secara default.
-bengah
Keluarkan semua diagnostik wajib yang tercantum dalam standar C. Beberapa dari mereka yang tersisa
keluar secara default, karena mereka sering memicu pada kode yang tidak berbahaya.
-pedantic-error
Keluarkan semua diagnostik wajib, dan buat semua diagnostik wajib menjadi kesalahan.
Ini termasuk diagnostik wajib yang dikeluarkan GCC tanpa -bengah tapi memperlakukan sebagai
peringatan.
-M Alih-alih mengeluarkan hasil prapemrosesan, keluarkan aturan yang cocok untuk membuat
menggambarkan dependensi dari file sumber utama. Praprosesor mengeluarkan satu
membuat aturan yang berisi nama file objek untuk file sumber itu, titik dua, dan nama
dari semua file yang disertakan, termasuk yang berasal dari -termasuk or -imacros Command
pilihan baris.
Kecuali ditentukan secara eksplisit (dengan -MT or -MQ), nama file objek terdiri dari
nama file sumber dengan akhiran apa pun diganti dengan akhiran file objek dan dengan
bagian direktori terkemuka dihapus. Jika ada banyak file yang disertakan maka aturannya adalah
dibagi menjadi beberapa baris menggunakan \-garis baru. Aturan tidak memiliki perintah.
Opsi ini tidak menekan output debug praprosesor, seperti -dM. Menghindari
mencampur keluaran debug tersebut dengan aturan ketergantungan Anda harus secara eksplisit menentukan
file keluaran ketergantungan dengan -MF, atau gunakan variabel lingkungan seperti
DEPENDENCIES_OUTPUT. Output debug masih akan dikirim ke aliran output reguler sebagai
Normal.
Lewat -M kepada pengemudi menyiratkan -E, dan menekan peringatan dengan implisit -w.
-MM Seperti -M tetapi jangan menyebutkan file header yang ditemukan di direktori header sistem,
maupun file header yang disertakan, secara langsung atau tidak langsung, dari header tersebut.
Ini menyiratkan bahwa pilihan kurung sudut atau tanda kutip ganda dalam sebuah #include
direktif tidak dengan sendirinya menentukan apakah tajuk itu akan muncul di -MM
keluaran ketergantungan. Ini adalah sedikit perubahan dalam semantik dari GCC versi 3.0 dan
sebelumnya.
-MF fillet
Saat digunakan dengan -M or -MM, menentukan file untuk menulis dependensi. Jika tidak -MF
switch diberikan preprocessor mengirimkan aturan ke tempat yang sama yang akan dikirim
keluaran yang telah diproses sebelumnya.
Saat digunakan dengan opsi driver -MD or -MMD, -MF menimpa ketergantungan default
berkas keluaran.
-MG Dalam hubungannya dengan opsi seperti -M meminta pembuatan ketergantungan, -MG mengasumsikan
file header yang hilang adalah file yang dihasilkan dan menambahkannya ke daftar ketergantungan tanpa
meningkatkan kesalahan. Nama file dependensi diambil langsung dari "#include"
direktif tanpa mengawali jalur apa pun. -MG juga menekan output yang telah diproses sebelumnya, sebagai
file header yang hilang membuat ini tidak berguna.
Fitur ini digunakan dalam pembaruan otomatis makefile.
-MP Opsi ini menginstruksikan CPP untuk menambahkan target palsu untuk setiap ketergantungan selain dari
file utama, menyebabkan masing-masing tidak bergantung pada apa pun. Aturan dummy ini mengatasi kesalahan
membuat memberi jika Anda menghapus file header tanpa memperbarui Makefile untuk mencocokkan.
Ini adalah keluaran khas:
uji.o: uji.c uji.h
tes.h:
-MT target
Ubah target aturan yang dikeluarkan oleh pembuatan ketergantungan. Secara default, CPP membutuhkan
nama file input utama, menghapus semua komponen direktori dan akhiran file apa pun
seperti .c, dan menambahkan akhiran objek platform yang biasa. Hasilnya adalah sasaran.
An -MT option akan menetapkan target menjadi persis seperti string yang Anda tentukan. jika kamu mau
beberapa target, Anda dapat menentukannya sebagai argumen tunggal untuk -MT, atau gunakan beberapa
-MT Pilihan.
Sebagai contoh, -MT '$(objpfx)foo.o' mungkin memberi
$(objpfx)foo.o: foo.c
-MQ target
Sama dengan -MT, tetapi mengutip karakter apa pun yang khusus dibuat.
-MQ '$(objpfx)foo.o' memberikan
$$(objpfx)foo.o: foo.c
Target default secara otomatis dikutip, seolah-olah diberikan dengan -MQ.
-MD -MD adalah setara dengan -M -MF fillet, kecuali itu -E tidak tersirat. Supir
ditentukan fillet berdasarkan apakah -o opsi diberikan. Jika ya, pengemudi menggunakannya
argumen tetapi dengan akhiran .d, jika tidak, dibutuhkan nama file input,
menghapus semua komponen direktori dan sufiks, dan menerapkan a .d akhiran.
If -MD digunakan bersama dengan -E, apa saja -o sakelar dipahami untuk menentukan
file keluaran ketergantungan, tetapi jika digunakan tanpa -Emasing-masing -o dipahami untuk menentukan
berkas objek sasaran.
Sejak -E tidak tersirat, -MD dapat digunakan untuk menghasilkan file keluaran ketergantungan sebagai
efek samping dari proses kompilasi.
-MMD
Seperti -MD kecuali hanya menyebutkan file header pengguna, bukan file header sistem.
-x c
-x c ++
-x objektif-c
-x assembler-dengan-cpp
Tentukan bahasa sumber: C, C++, Objective-C, atau assembly. Ini tidak ada hubungannya
dengan kesesuaian standar atau ekstensi; itu hanya memilih sintaks dasar mana yang akan
mengharapkan. Jika Anda tidak memberikan salah satu dari opsi ini, cpp akan menyimpulkan bahasa dari
ekstensi file sumber: .c, Cc., .m, atau .S. Beberapa ekstensi umum lainnya untuk
C++ dan perakitan juga dikenali. Jika cpp tidak mengenali ekstensi, itu
akan memperlakukan file sebagai C; ini adalah mode yang paling umum.
Catatan: Versi cpp sebelumnya diterima -lang opsi yang memilih keduanya
bahasa dan tingkat kesesuaian standar. Opsi ini telah dihapus, karena
itu bertentangan dengan -l .
-std=standard
-ansi
Tentukan standar yang harus dipatuhi oleh kode. Saat ini CPP mengetahui tentang C
dan standar C++; lain dapat ditambahkan di masa depan.
standard mungkin salah satu dari:
"c90"
"c89"
"iso9899: 1990"
Standar ISO C dari tahun 1990. c90 adalah singkatan biasa untuk versi ini
standar.
-ansi pilihan setara dengan -std=c90.
"iso9899: 199409"
Standar 1990 C, sebagaimana diubah pada tahun 1994.
"iso9899: 1999"
"c99"
"iso9899:199x"
"c9x"
Standar ISO C yang direvisi, diterbitkan pada Desember 1999. Sebelum dipublikasikan, ini
dikenal sebagai C9X.
"iso9899: 2011"
"c11"
"c1x"
Standar ISO C yang direvisi, diterbitkan pada Desember 2011. Sebelum dipublikasikan, ini
dikenal sebagai C1X.
"gnu90"
"gnu89"
Standar 1990 C ditambah ekstensi GNU. Ini adalah default.
"gnu99"
"gnu9x"
Standar C 1999 plus ekstensi GNU.
"gnu11"
"gnu1x"
Standar C 2011 plus ekstensi GNU.
"c++98"
Standar ISO C++ 1998 plus amandemen.
"gnu++98"
Sama seperti -std=c++98 ditambah ekstensi GNU. Ini adalah default untuk kode C++.
-SAYA- Pisahkan jalur sertakan. Direktori apa pun yang ditentukan dengan -I pilihan sebelumnya -SAYA- adalah
hanya mencari header yang diminta dengan "#include "mengajukan""; mereka tidak dicari
"#termasukberkas>". Jika direktori tambahan ditentukan dengan -I pilihan setelah
-SAYA-, direktori-direktori itu dicari semua #include arahan.
Selain itu, -SAYA- menghambat penggunaan direktori direktori file saat ini sebagai
direktori pencarian pertama untuk "#include"mengajukan"".
Opsi ini tidak digunakan lagi.
-nostdinc
Jangan mencari direktori sistem standar untuk file header. Hanya direktori
Anda telah menentukan dengan -I opsi (dan direktori file saat ini, jika
sesuai) dicari.
-nostdinc++
Jangan mencari file header di direktori standar khusus C++, tetapi tetap lakukan
cari direktori standar lainnya. (Opsi ini digunakan saat membangun C++
Perpustakaan.)
-termasuk fillet
Proses fillet seolah-olah "#include"file"" muncul sebagai baris pertama dari sumber utama
mengajukan. Namun, direktori pertama mencari fillet apakah preprosesor berfungsi?
direktori sebagai gantinya of direktori yang berisi file sumber utama. Jika tidak ditemukan
di sana, itu dicari di sisa rantai pencarian "#include "..."" sebagai
Normal.
Jika banyak -termasuk opsi diberikan, file disertakan dalam urutannya
muncul di baris perintah.
-imacros fillet
Tepat seperti -termasuk, kecuali bahwa setiap output yang dihasilkan oleh pemindaian fillet dilempar
jauh. Makro yang didefinisikannya tetap ditentukan. Ini memungkinkan Anda untuk memperoleh semua makro
dari header tanpa juga memproses deklarasinya.
Semua file ditentukan oleh -imacros diproses sebelum semua file ditentukan oleh -termasuk.
-idirafter dir
Pencarian dir untuk file header, tetapi lakukanlah setelah semua direktori yang ditentukan dengan -I dan
direktori sistem standar telah habis. dir diperlakukan sebagai suatu sistem termasuk
direktori. Jika dir dimulai dengan "=", maka "=" akan diganti dengan sysroot
awalan; Lihat --sysroot dan -isysroot.
-iprefiks awalan
Menentukan awalan sebagai awalan untuk selanjutnya -idengan awalan pilihan. Jika awalan
mewakili direktori, Anda harus menyertakan final /.
-idengan awalan dir
-idengan awalansebelum dir
Menambahkan dir ke awalan yang ditentukan sebelumnya dengan -iprefiks, dan tambahkan hasilnya
direktori ke jalur pencarian sertakan. -idengan awalansebelum meletakkannya di tempat yang sama -I
akan; -idengan awalan taruh di mana -idirafter akan.
-isysroot dir
Opsi ini seperti --sysroot opsi, tetapi hanya berlaku untuk file header (kecuali untuk
Target Darwin, yang berlaku untuk file header dan pustaka). Lihat
--sysroot pilihan untuk informasi lebih lanjut.
-imultilib dir
penggunaan dir sebagai subdirektori dari direktori yang berisi header C++ target-spesifik.
-isistem dir
Pencarian dir untuk file header, setelah semua direktori ditentukan oleh -I tapi sebelum
direktori sistem standar. Tandai sebagai direktori sistem, sehingga mendapatkan yang sama
perlakuan khusus seperti yang diterapkan pada direktori sistem standar.
If dir dimulai dengan "=", maka "=" akan diganti dengan awalan sysroot; Lihat
--sysroot dan -isysroot.
-Saya mengutip dir
Pencarian dir hanya untuk file header yang diminta dengan "#include"mengajukan""; mereka tidak
mencari "#includeberkas>", sebelum semua direktori ditentukan oleh -I dan sebelum
direktori sistem standar.
If dir dimulai dengan "=", maka "=" akan diganti dengan awalan sysroot; Lihat
--sysroot dan -isysroot.
-fdirectives-saja
Saat melakukan prapemrosesan, tangani arahan, tetapi jangan perluas makro.
Perilaku opsi tergantung pada -E dan -fpraproses Pilihan.
Dengan -E, preprocessing terbatas pada penanganan arahan seperti "#define",
"#ifdef", dan "#error". Operasi praprosesor lainnya, seperti ekspansi makro dan
konversi trigraf tidak dilakukan. Selain itu, -DD pilihan secara implisit
diaktifkan.
Dengan -fpraproses, definisi baris perintah dan sebagian besar makro bawaan adalah
dengan disabilitas. Makro seperti "__LINE__", yang bergantung secara kontekstual, ditangani
biasanya. Ini memungkinkan kompilasi file yang sebelumnya diproses dengan "-E
-fdirectives-only".
Dengan keduanya -E dan -fpraproses, aturan untuk -fpraproses diutamakan. Ini
memungkinkan pra-pemrosesan penuh file yang sebelumnya diproses sebelumnya dengan "-E
-fdirectives-only".
-fdollar-in-identifier
Setuju $ dalam pengidentifikasi.
-pengidentifikasi yang diperluas
Terima nama karakter universal dalam pengidentifikasi. Opsi ini bersifat eksperimental; di sebuah
versi GCC yang akan datang, ini akan diaktifkan secara default untuk C99 dan C++.
-fno-kanonik-sistem-header
Saat melakukan prapemrosesan, jangan mempersingkat jalur header sistem dengan kanonikalisasi.
-fpraproses
Tunjukkan kepada praprosesor bahwa file input telah diproses sebelumnya. Ini
menekan hal-hal seperti ekspansi makro, konversi trigraf, lolos penyambungan baris baru,
dan pemrosesan sebagian besar arahan. Praprosesor masih mengenali dan menghapus
komentar, sehingga Anda dapat mengirimkan file yang telah diproses sebelumnya dengan -C ke kompiler tanpa
masalah. Dalam mode ini, praprosesor terintegrasi tidak lebih dari sekadar tokenizer
untuk ujung depan.
-fpraproses implisit jika file input memiliki salah satu ekstensi .i, .ii or .mi.
Ini adalah ekstensi yang digunakan GCC untuk file yang telah diproses sebelumnya yang dibuat oleh -hemat-temps.
-ftabstop=lebar
Atur jarak antara perhentian tab. Ini membantu praprosesor melaporkan kolom yang benar
nomor dalam peringatan atau kesalahan, bahkan jika tab muncul di telepon. Jika nilainya kurang
dari 1 atau lebih besar dari 100, opsi diabaikan. Standarnya adalah 8.
-fdebug-cpp
Opsi ini hanya berguna untuk men-debug GCC. Saat digunakan dengan -E, membuang debug
informasi tentang peta lokasi. Setiap token dalam output didahului oleh dump of
peta lokasi miliknya. Tempat pembuangan peta yang menyimpan lokasi token
akan menjadi:
{"P":F ;"F":F ;"L": ;"C": ;"S": ;"M": ;"E": ,"lokasi": }
Saat digunakan tanpa -E, opsi ini tidak berpengaruh.
-ftrack-makro-ekspansi[=tingkat]
Lacak lokasi token di seluruh ekspansi makro. Ini memungkinkan kompiler untuk memancarkan
diagnostik tentang tumpukan ekspansi makro saat ini ketika terjadi kesalahan kompilasi di
ekspansi makro. Menggunakan opsi ini membuat praprosesor dan kompiler mengkonsumsi
lebih banyak memori. NS tingkat parameter dapat digunakan untuk memilih tingkat presisi token
pelacakan lokasi sehingga mengurangi konsumsi memori jika perlu. Nilai 0 of
tingkat menonaktifkan opsi ini seolah-olah tidak -ftrack-makro-ekspansi hadir pada
baris perintah. Nilai 1 melacak lokasi token dalam mode terdegradasi demi
overhead memori minimal. Dalam mode ini semua token yang dihasilkan dari perluasan
argumen makro seperti fungsi memiliki lokasi yang sama. Nilai 2 melacak token
lokasi sepenuhnya. Nilai ini adalah yang paling haus memori. Ketika opsi ini diberikan
tidak ada argumen, nilai parameter default adalah 2.
Perhatikan bahwa -ftrack-macro-expansion=2 diaktifkan secara default.
-fexec-rangkaian karakter=rangkaian karakter
Mengatur set karakter eksekusi, digunakan untuk string dan konstanta karakter. Standarnya
adalah UTF-8. rangkaian karakter dapat berupa penyandian apa pun yang didukung oleh perpustakaan "iconv" sistem
rutin.
-fwide-exec-charset=rangkaian karakter
Atur rangkaian karakter eksekusi lebar, digunakan untuk string lebar dan konstanta karakter.
Standarnya adalah UTF-32 atau UTF-16, mana saja yang sesuai dengan lebar "wchar_t". Sebagai
dengan -fexec-rangkaian karakter, rangkaian karakter dapat berupa penyandian apa pun yang didukung oleh "iconv" sistem
rutinitas perpustakaan; namun, Anda akan mengalami masalah dengan penyandian yang tidak sesuai
tepatnya di "wchar_t".
-finput-rangkaian karakter=rangkaian karakter
Atur set karakter input, digunakan untuk terjemahan dari set karakter input
file ke set karakter sumber yang digunakan oleh GCC. Jika lokal tidak menentukan, atau GCC
tidak bisa mendapatkan informasi ini dari lokal, defaultnya adalah UTF-8. Ini bisa jadi
ditimpa oleh lokal atau opsi baris perintah ini. Saat ini perintah
opsi baris diutamakan jika ada konflik. rangkaian karakter dapat berupa penyandian apa pun
didukung oleh rutin perpustakaan "iconv" sistem.
-fworking-direktori
Aktifkan pembuatan penanda garis di output praprosesor yang memungkinkan kompiler
mengetahui direktori kerja saat ini pada saat preprocessing. Ketika opsi ini adalah
diaktifkan, praprosesor akan memancarkan, setelah penanda garis awal, penanda garis kedua
dengan direktori kerja saat ini diikuti oleh dua garis miring. GCC akan menggunakan ini
direktori, ketika ada di input yang diproses sebelumnya, sebagai direktori yang dipancarkan sebagai
direktori kerja saat ini dalam beberapa format informasi debug. Pilihan ini adalah
secara implisit diaktifkan jika informasi debug diaktifkan, tetapi ini dapat dihambat dengan
bentuk yang dinegasikan -fno-working-direktori. Jika -P bendera hadir dalam perintah
baris, opsi ini tidak berpengaruh, karena tidak ada arahan "#line" yang dikeluarkan sama sekali.
-fno-show-kolom
Jangan mencetak nomor kolom dalam diagnostik. Ini mungkin diperlukan jika diagnostik
dipindai oleh program yang tidak memahami nomor kolom, seperti
dejagnu.
-A predikat=menjawab
Buatlah pernyataan dengan predikat predikat dan jawab menjawab. Bentuk ini adalah
lebih disukai daripada bentuk yang lebih tua -A predikat(menjawab), yang masih didukung, karena
tidak menggunakan karakter khusus shell.
-A -predikat=menjawab
Batalkan pernyataan dengan predikat predikat dan jawab menjawab.
-dCHARS
BIAYA adalah urutan dari satu atau lebih karakter berikut, dan tidak boleh
didahului dengan spasi. Karakter lain ditafsirkan oleh kompiler yang tepat, atau
dicadangkan untuk versi GCC mendatang, sehingga diabaikan secara diam-diam. Jika Anda menentukan
karakter yang perilakunya bertentangan, hasilnya tidak terdefinisi.
M Alih-alih output normal, buat daftar #menetapkan arahan untuk semua
makro yang ditentukan selama eksekusi praprosesor, termasuk yang telah ditentukan sebelumnya
makro. Ini memberi Anda cara untuk mengetahui apa yang telah ditentukan sebelumnya dalam versi
praprosesor. Dengan asumsi Anda tidak memiliki file foo.h, perintah
sentuh foo.h; cpp -dM foo.h
akan menampilkan semua makro yang telah ditentukan sebelumnya.
Jika Anda menggunakan -dM tanpa -E pilihan, -dM diartikan sebagai sinonim untuk
-fdump-rtl-mach.
D Seperti M kecuali dalam dua hal: itu benar tidak termasuk makro yang telah ditentukan, dan itu
output kedua itu #menetapkan arahan dan hasil dari preprocessing. Kedua jenis
output pergi ke file output standar.
N Seperti D, tetapi hanya memancarkan nama makro, bukan perluasannya.
I Keluaran #include arahan selain hasil preprocessing.
U Seperti D kecuali hanya makro yang diperluas, atau yang ketegasannya diuji
dalam arahan preprocessor, adalah output; output ditunda hingga penggunaan atau
uji makro; dan #undef arahan juga merupakan output untuk makro yang diuji tetapi
tidak terdefinisi pada saat itu.
-P Menghambat pembuatan linemarker dalam output dari praprosesor. Ini mungkin
berguna saat menjalankan preprocessor pada sesuatu yang bukan kode C, dan akan dikirim
ke program yang mungkin dikacaukan oleh penanda garis.
-C Jangan buang komentar. Semua komentar diteruskan ke file output, kecuali
untuk komentar dalam arahan yang diproses, yang dihapus bersama dengan arahan.
Anda harus siap untuk efek samping saat menggunakan -C; itu menyebabkan praprosesor untuk
memperlakukan komentar sebagai token dalam hak mereka sendiri. Misalnya, komentar yang muncul di
awal dari apa yang akan menjadi garis direktif memiliki efek mengubah garis itu menjadi sebuah
saluran sumber biasa, karena token pertama pada saluran tidak lagi #.
-CC Jangan membuang komentar, termasuk selama ekspansi makro. Ini seperti -C, kecuali
bahwa komentar yang terkandung dalam makro juga diteruskan ke file output di mana
makro diperluas.
Selain efek samping dari -C opsi, opsi -CC opsi menyebabkan semua gaya C++
komentar di dalam makro untuk dikonversi ke komentar gaya-C. Ini untuk mencegah nanti
penggunaan makro itu dari secara tidak sengaja mengomentari sisa baris sumber.
-CC option umumnya digunakan untuk mendukung komentar lint.
-tradisional-cpp
Cobalah untuk meniru perilaku praprosesor C kuno, sebagai lawan dari ISO C
praprosesor.
-trigraf
Urutan trigraf proses.
-peta ulang
Aktifkan kode khusus untuk mengatasi sistem file yang hanya mengizinkan file yang sangat pendek
nama, seperti MS-DOS.
--membantu
--target-bantuan
Cetak teks yang menjelaskan semua opsi baris perintah alih-alih memproses apa pun sebelumnya.
-v Modus verbose. Cetak nomor versi GNU CPP di awal eksekusi, dan
laporkan bentuk akhir dari jalur penyertaan.
-H Cetak nama setiap file header yang digunakan, selain aktivitas normal lainnya. Setiap
nama menjorok untuk menunjukkan seberapa dalam #include tumpukan itu. Header yang telah dikompilasi sebelumnya
file juga dicetak, meskipun ternyata tidak valid; prakompilasi yang tidak valid
file header dicetak dengan ...X dan yang valid dengan ...! .
-versi
--Versi: kapan
Cetak nomor versi GNU CPP. Dengan satu tanda hubung, lanjutkan ke praproses seperti biasa.
Dengan dua tanda hubung, segera keluar.
LINGKUNGAN
Bagian ini menjelaskan variabel lingkungan yang memengaruhi cara CPP beroperasi. Kamu bisa
gunakan untuk menentukan direktori atau awalan yang akan digunakan saat mencari file yang disertakan, atau untuk
mengontrol keluaran ketergantungan.
Perhatikan bahwa Anda juga dapat menentukan tempat untuk mencari menggunakan opsi seperti -I, dan kendalikan
keluaran ketergantungan dengan opsi seperti -M. Ini lebih diutamakan daripada variabel lingkungan,
yang pada gilirannya lebih diutamakan daripada konfigurasi GCC.
CPAT
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
Nilai setiap variabel adalah daftar direktori yang dipisahkan oleh karakter khusus, banyak
'like' PATH, untuk mencari file header. Karakter khusus,
"PATH_SEPARATOR", bergantung pada target dan ditentukan pada waktu pembuatan GCC. Untuk Microsoft
Target berbasis Windows adalah titik koma, dan untuk hampir semua target lainnya adalah a
usus besar.
CPAT menentukan daftar direktori yang akan dicari seolah-olah ditentukan dengan -I, tapi
setelah jalur apa pun yang diberikan dengan -I pilihan pada baris perintah. Variabel lingkungan ini
digunakan terlepas dari bahasa mana yang sedang diproses sebelumnya.
Variabel lingkungan yang tersisa hanya berlaku saat pra-pemrosesan tertentu
bahasa yang ditunjukkan. Masing-masing menentukan daftar direktori yang akan dicari seolah-olah
ditentukan dengan -isistem, tetapi setelah jalur apa pun yang diberikan dengan -isistem pilihan pada
garis komando.
Dalam semua variabel ini, elemen kosong menginstruksikan kompiler untuk mencari arusnya
direktori kerja. Elemen kosong dapat muncul di awal atau akhir jalur. Untuk
Misalnya, jika nilai CPAT adalah ":/special/include", yang memiliki efek yang sama dengan
-SAYA. -Saya/khusus/termasuk.
DEPENDENCIES_OUTPUT
Jika variabel ini disetel, nilainya menentukan bagaimana menghasilkan dependensi untuk berbasis Make
pada file header non-sistem yang diproses oleh kompiler. File header sistem adalah
diabaikan dalam output ketergantungan.
Nilai dari DEPENDENCIES_OUTPUT bisa hanya nama file, dalam hal ini aturan Make
ditulis ke file itu, menebak nama target dari nama file sumber. Atau
nilai dapat berbentuk fillet target, dalam hal ini aturan ditulis ke file fillet
menggunakan target sebagai nama sasaran.
Dengan kata lain, variabel lingkungan ini setara dengan menggabungkan opsi -MM
dan -MF, dengan opsional -MT beralih juga.
SUNPRO_DEPENDENCIES
Variabel ini sama dengan DEPENDENCIES_OUTPUT (lihat di atas), kecuali sistem itu
file header tidak diabaikan, jadi ini menyiratkan -M daripada -MM. Namun,
ketergantungan pada file input utama dihilangkan.
Gunakan aarch64-linux-gnu-cpp-4.9 online menggunakan layanan onworks.net