Ketika saya mengajukan pertanyaan ini, saya hampir selalu mendapat jawaban ya, Anda harus memiliki standar pengkodean.
Apa aturan standar pengkodean teraneh yang pernah dipaksa untuk Anda ikuti?
Dan yang paling aneh yang saya maksud paling lucu, atau terburuk, atau sekadar aneh.
Dalam setiap jawaban, harap sebutkan bahasa mana, ukuran tim Anda, dan efek buruk apa yang menyebabkan Anda dan tim Anda.
coding-style
Brian R. Bondy
sumber
sumber
Jawaban:
Saya benci ketika penggunaan beberapa pengembalian dilarang.
sumber
membalikkan indentasi. Sebagai contoh:
dan:
sumber
Mungkin bukan yang paling aneh yang akan Anda dapatkan, tapi saya benar-benar sangat benci ketika saya harus membuka nama tabel database dengan 'tbl'
sumber
Hampir semua jenis notasi hungaria.
Masalah dengan notasi Hongaria adalah bahwa hal itu sangat sering disalahpahami. Gagasan asli adalah untuk awalan variabel sehingga artinya jelas. Sebagai contoh:
Tetapi kebanyakan orang menggunakannya untuk menentukan jenisnya.
Ini membingungkan, karena meskipun kedua bilangan bulat, semua orang tahu, Anda tidak dapat membandingkan apel dengan pir.
sumber
Tidak ada operator ternary yang diizinkan di tempat saya bekerja saat ini:
... karena tidak semua orang "mengerti". Jika Anda mengatakan kepada saya, "Jangan menggunakannya karena kami harus menulis ulang ketika strukturnya terlalu rumit" (operator ternary bersarang, siapa pun?), Maka saya akan mengerti. Tetapi ketika Anda memberi tahu saya bahwa beberapa pengembang tidak memahaminya ... um ... Tentu.
sumber
Untuk TIDAK PERNAH menghapus kode apa pun saat melakukan perubahan. Kami disuruh berkomentar semua perubahan. Ingatlah bahwa kami menggunakan kontrol sumber. Kebijakan ini tidak bertahan lama karena pengembang gempar tentang hal itu dan bagaimana hal itu membuat kode tidak dapat dibaca.
sumber
Saya pernah bekerja di bawah tirani Raja VB yang Perkasa .
The VB Raja adalah master murni MS Excel dan VBA, serta database ( Oleh karena itu nama keluarga: Dia bermain dengan Excel sedangkan pengembang bekerja dengan kompiler, dan menantang dia pada database bisa memiliki efek merugikan pada karir Anda ... ).
Tentu saja, keahliannya yang luar biasa memberinya visi unik tentang masalah-masalah pembangunan dan solusi manajemen proyek: Meskipun tidak persis mengkode standar dalam arti yang paling ketat, VB King secara teratur memiliki ide-ide baru tentang "standar pengkodean" dan "praktik terbaik" yang ia coba (dan seringkali berhasil) untuk memaksakan pada kita. Sebagai contoh:
Semua array C / C ++ harus dimulai pada indeks 1, bukan 0. Memang, penggunaan 0 sebagai indeks pertama array sudah usang, dan telah digantikan oleh manajemen indeks array berwawasan luas Visual Basic 6.
Semua fungsi akan mengembalikan kode kesalahan: Tidak ada pengecualian di VB6, jadi mengapa kita membutuhkannya? ( yaitu dalam C ++ )
Karena "Semua fungsi harus mengembalikan kode kesalahan" tidak praktis untuk fungsi yang mengembalikan tipe yang bermakna, semua fungsi harus memiliki kode kesalahan sebagai parameter [masuk / keluar] pertama.
Semua kode kami akan memeriksa kode kesalahan ( ini mengarah ke kasus terburuk VBScript jika-indentasi yang pernah saya lihat dalam karir saya ... Tentu saja, karena klausul "lain" tidak pernah ditangani, tidak ada kesalahan yang benar-benar ditemukan sampai terlambat) ).
Karena kami bekerja dengan C ++ / COM, mulai hari ini, kami akan mengkode semua fungsi utilitas DOM kami di Visual Basic.
Kesalahan ASP 115 adalah jahat. Untuk alasan ini, kami akan menggunakan On Error Resume Next dalam kode VBScript / ASP kami untuk menghindarinya.
XSL-T adalah bahasa berorientasi objek. Gunakan warisan untuk menyelesaikan masalah Anda ( kejutan bodoh hampir mematahkan rahang saya terbuka satu hari ini ).
Pengecualian tidak digunakan, dan karenanya harus dihapus. Untuk alasan ini, kami akan menghapus centang pada kotak centang yang meminta panggilan destruktor jika pengecualian dibatalkan ( butuh berhari-hari bagi seorang ahli untuk menemukan penyebab semua kebocoran memori itu, dan ia hampir mengamuk ketika mengetahui bahwa mereka telah dengan sengaja mengabaikannya (dan tersembunyi) catatan teknisnya tentang memeriksa opsi lagi, mengirim beberapa minggu sebelumnya ).
tangkap semua pengecualian di antarmuka COM modul COM kami, dan buang secara diam-diam ( dengan cara ini, alih-alih menabrak, modul hanya akan tampak lebih cepat ... Berkilau! ... Saat kami menggunakan penanganan kesalahan über yang dijelaskan di atas, bahkan kami butuh waktu untuk memahami apa yang sebenarnya terjadi ... Anda tidak dapat memiliki kecepatan dan hasil yang benar, bukan? ).
Mulai hari ini, basis kode kami akan dibagi menjadi empat cabang. Kami akan mengelola sinkronisasi mereka dan mengintegrasikan semua koreksi / evolusi bug dengan tangan.
Semua kecuali array C / C ++ , fungsi utilitas VB DOM dan XSL-T sebagai bahasa OOP dilaksanakan meskipun ada protes dari kami. Tentu saja, seiring berjalannya waktu, beberapa ditemukan, ahem , rusak, dan ditinggalkan sama sekali.
Tentu saja, kredibilitas Raja VB tidak pernah menderita untuk itu: Di antara manajemen yang lebih tinggi, ia tetap menjadi ahli teknis "senjata top" ...
Ini menghasilkan beberapa efek samping yang lucu, seperti yang Anda lihat dengan mengikuti tautan
Apa komentar terbaik dalam kode sumber yang pernah Anda temui?sumber
Kembali di tahun 80-an / 90-an, saya bekerja untuk perusahaan simulator pesawat yang menggunakan FORTRAN. Kompiler FORTRAN kami memiliki batas 8 karakter untuk nama variabel. Standar pengkodean perusahaan disediakan tiga dari mereka untuk info gaya notasi Hungaria. Jadi kami harus mencoba dan membuat nama variabel yang bermakna hanya dengan 5 karakter!
sumber
Saya bekerja di tempat yang memiliki merger antara 2 perusahaan. Yang 'dominan' memiliki server utama yang ditulis dalam K&R C (yaitu pra-ANSI). Mereka memaksa tim-tim Java (dari kedua kantor - mungkin total 20 devs) untuk menggunakan format ini, yang dengan gembira mengabaikan 2 pilar dari "debat penjepit" dan langsung menjadi gila:
sumber
Terlarang:
Diizinkan:
sumber
for (;;) {
ini adalah Idiom C untuk yang pertama.seorang teman saya - kami akan memanggilnya CodeMonkey - mendapatkan pekerjaan pertamanya dari perguruan tinggi [ bertahun- tahun lalu] melakukan pengembangan in-house di COBOL. Program pertamanya ditolak karena 'tidak memenuhi standar kami' karena menggunakan ... [gemetar!] Pernyataan IF bersarang
standar pengkodean melarang penggunaan pernyataan IF bersarang
sekarang, CodeMonkey tidak malu-malu dan yakin akan kemampuannya, jadi dia bersikeras meminta semua orang menaiki rantai dan menyusuri lorong mengapa aturan ini ada. Sebagian besar menyatakan bahwa mereka tidak tahu, beberapa mengarang 'keterbacaan', dan akhirnya satu orang mengingat alasan aslinya: versi pertama dari kompiler COBOL yang mereka gunakan memiliki bug dan tidak menangani pernyataan IF bersarang dengan benar.
Bug kompiler ini, tentu saja, telah diperbaiki selama setidaknya satu dekade, tetapi tidak ada yang menantang standar . [baaa!]
CodeMonkey berhasil mengubah standar - pada akhirnya!
sumber
Pernah bekerja pada proyek di mana garis bawah dilarang. Dan maksud saya benar-benar dilarang. Jadi di aplikasi ac # winforms, setiap kali kami menambahkan event handler baru (mis. Untuk sebuah tombol) kami harus mengganti nama nama metode default dari buttonName_Click () menjadi sesuatu yang lain, hanya untuk memuaskan ego orang yang menulis coding standar. Sampai hari ini saya tidak tahu apa yang dimilikinya terhadap garis bawah yang sederhana
sumber
Konvensi penamaan database yang sama sekali tidak berguna. Setiap nama tabel harus dimulai dengan angka. Angka-angka menunjukkan jenis data apa yang ada dalam tabel.
Ini menyulitkan untuk menemukan tabel jika Anda hanya tahu huruf pertama dari namanya. Juga - karena ini adalah database mssql - kita harus mengelilingi nama-nama tab dengan tanda kurung di mana-mana.
sumber
Kami sedang melakukan proyek C ++ dan pemimpin tim adalah seorang pria Pascal.
Jadi kami memiliki standar pengkodean termasuk file untuk mendefinisikan kembali semua sintaks C dan C ++ yang sial:
tapi tunggu ada lagi!
dll. Sulit untuk diingat setelah sekian lama.
Ini mengambil kode C ++ yang bisa dibaca dengan sempurna dan membuatnya tidak terbaca oleh siapa pun kecuali pemimpin tim.
Kami juga harus menggunakan notasi Hungaria terbalik, yaitu
meskipun anehnya saya tumbuh seperti ini.
sumber
Di pekerjaan sebelumnya:
Ya itu betul. Semua bidang, di setiap tabel. Sehingga kita bisa tahu itu bidang.
sumber
Seorang teman saya menemukan aturan ini saat bekerja di pekerjaan pemerintah. Penggunaan ++ (sebelum atau sesudah) sepenuhnya dilarang. Alasannya: Kompiler yang berbeda mungkin menafsirkannya secara berbeda.
sumber
=
karena dapat digunakan untuk menyebabkan perilaku yang tidak terdefinisi.Setengah dari tim menyukai indentasi empat ruang; setengah lainnya menyukai lekukan dua-ruang.
Seperti yang bisa Anda tebak, standar pengkodean diamanatkan tiga, sehingga "menyinggung semua sama" (kutipan langsung).
sumber
Tidak dapat menggunakan Refleksi karena manajer mengklaim itu melibatkan terlalu banyak 'sihir'.
sumber
Yang paling aneh yang saya miliki, dan yang membuat saya cukup lama untuk digulingkan, adalah ketika pemilik perusahaan kami menuntut agar produk baru kami hanya IE. Jika itu bisa bekerja pada FireFox, itu OK, tapi itu harus IE saja.
Ini mungkin kedengarannya tidak aneh, kecuali satu cacat kecil. Semua perangkat lunak itu untuk paket perangkat lunak server yang dipesan lebih dahulu, berjalan di Linux, dan semua kotak klien yang dibeli pelanggan kami adalah Linux. Pendek mencoba untuk mencari tahu cara mendapatkan Wine (pada masa itu, sangat tidak bisa diandalkan) dan berjalan di semua kotak ini dan melihat apakah kita bisa menjalankan IE dan melatih admin mereka bagaimana cara debug masalah Wine, itu tidak mungkin untuk memenuhi permintaan pemilik. Masalahnya adalah dia melakukan desain Web dan tidak tahu bagaimana membuat situs Web sesuai dengan FireFox.
Mungkin tidak akan mengejutkan Anda mengetahui bahwa perusahaan kami bangkrut.
sumber
Menggunakan nama pengidentifikasi bernomor generik
Pada pekerjaan saya saat ini, kami memiliki dua aturan yang benar-benar berarti:
Aturan 1: Setiap kali kita membuat bidang baru dalam tabel database kita harus menambahkan bidang cadangan tambahan untuk penggunaan di masa mendatang. Bidang cadangan ini diberi nomor (karena tidak ada yang tahu data mana yang akan mereka pegang suatu hari nanti) Pada saat kita membutuhkan bidang baru, pertama-tama kita mencari bidang cadangan yang tidak digunakan.
Jadi kita berakhir dengan
customer.reserve_field_14
berisi alamat email pelanggan.Pada suatu hari bos kami berpikir tentang memperkenalkan tabel cadangan , tetapi untungnya kami bisa meyakinkan dia untuk tidak melakukannya.
Aturan 2: Salah satu produk kami ditulis dalam VB6 dan VB6 memiliki batas jumlah total nama pengenal yang berbeda dan karena kodenya sangat besar, kami terus-menerus mengalami batasan ini. Sebagai "solusi" semua nama variabel lokal diberi nomor:
Lvarlong1
Lvarlong2
Lvarstr1
Meskipun itu secara efektif menghindari batas pengenal, kedua aturan ini digabungkan menghasilkan kode yang indah seperti ini:
Anda dapat membayangkan betapa sulitnya memperbaiki kode lama atau orang lain ...
Pembaruan terbaru: Sekarang kami juga menggunakan "prosedur cadangan" untuk anggota pribadi:
EDIT: Tampaknya pola kode ini menjadi semakin populer. Lihat posting The Daily WTF ini untuk mempelajari lebih lanjut: Astigmatisme :)
sumber
Kembali ke hari C ++ saya, kami tidak diizinkan menggunakan ==,> =, <=, &&, dll. Ada makro untuk ini ...
ini jelas untuk berurusan dengan "tugas lama yang tidak disengaja dalam bug bersyarat", namun kami juga memiliki aturan "menempatkan konstanta di atas variabel", jadi
Baru ingat, standar pengkodean paling sederhana yang pernah saya dengar adalah "Tulis kode seolah-olah pemelihara berikutnya adalah seorang psikopat ganas yang tahu di mana Anda tinggal."
sumber
Notasi Hungaria secara umum.
sumber
Saya sudah memiliki banyak aturan bodoh , tetapi tidak banyak yang saya anggap benar-benar aneh.
Yang paling konyol adalah pada pekerjaan NASA saya bekerja kembali pada awal 90-an. Ini adalah pekerjaan besar, dengan lebih dari 100 pengembang di dalamnya. Pengembang berpengalaman yang menulis standar pengkodean memutuskan bahwa setiap file sumber harus dimulai dengan akronim empat huruf, dan huruf pertama harus mewakili grup yang bertanggung jawab atas file tersebut. Ini mungkin ide yang bagus untuk proyek-proyek FORTRAN 77 yang dulu.
Namun, ini adalah proyek Ada , dengan struktur perpustakaan hierarkis yang bagus, sehingga tidak masuk akal sama sekali. Setiap direktori penuh dengan file yang dimulai dengan huruf yang sama, diikuti oleh 3 lebih banyak omong kosong, garis bawah, dan kemudian bagian dari nama file yang penting. Semua paket Ada harus dimulai dengan kutil lima karakter yang sama. Klausa "use" Ada juga tidak diizinkan (bisa dibilang hal yang baik dalam keadaan normal), jadi itu berarti referensi ke pengenal apa pun yang bukan lokal ke file sumber juga harus menyertakan kutil yang tidak berguna ini. Mungkin seharusnya ada pemberontakan atas ini, tetapi seluruh proyek dikelola oleh programmer junior dan baru dari karyawan baru kuliah (saya sendiri yang terakhir).
Pernyataan penugasan tipikal (sudah verbose di Ada) akhirnya akan terlihat seperti ini:
Untungnya mereka setidaknya cukup tercerahkan untuk memungkinkan kami lebih dari 80 kolom! Namun, fasilitas kutil itu cukup dibenci sehingga menjadi kode boilerplate di bagian atas file sumber semua orang untuk menggunakan Ada "nama" untuk menyingkirkan kutil. Akan ada satu nama untuk setiap paket yang diimpor ("withed"). Seperti ini:
Apa yang lebih kreatif di antara kami lakukan adalah mencoba menggunakan kutil untuk membuat nama paket yang masuk akal (atau konyol). (Saya tahu apa yang Anda pikirkan, tetapi bahan peledak tidak diizinkan dan membuat Anda malu! Itu menjijikkan). Sebagai contoh, saya berada di C ommon kelompok kode, dan saya butuhkan untuk membuat paket untuk antarmuka dengan W kelompok orkstation. Setelah sesi curah pendapat dengan orang Workstation, kami memutuskan untuk memberi nama paket kami sehingga seseorang yang membutuhkan keduanya harus menulis:
sumber
Ketika saya mulai bekerja di satu tempat, dan mulai memasukkan kode saya ke kontrol sumber, bos saya tiba-tiba mendatangi saya, dan meminta saya untuk berhenti melakukan begitu banyak hal. Dia mengatakan kepada saya bahwa tidak disarankan untuk melakukan lebih dari 1 komit per hari untuk pengembang karena itu mengotori kontrol sumber. Aku hanya menganga padanya ...
Kemudian saya mengerti bahwa alasan dia bahkan mendatangi saya tentang hal itu adalah karena server SVN akan mengiriminya (dan 10 eksekutif lebih tinggi) surat untuk setiap komit yang dibuat seseorang. Dan dengan mengotori kontrol sumber, kurasa dia menulis kotak suratnya.
sumber
Melakukan semua kueri basis data melalui prosedur tersimpan di Sql Server 2000. Dari kueri multi-tabel kompleks hingga yang sederhana seperti:
select id, name from people
Argumen yang mendukung prosedur adalah:
Saya tahu bahwa topik prosedurnya cukup kontroversial, jadi jangan ragu untuk menilai jawaban saya secara negatif;)
sumber
Harus ada 165 unit test (tidak harus otomatis) per 1000 baris kode. Itu berhasil pada satu tes untuk kira-kira setiap 8 baris.
Tak perlu dikatakan, beberapa baris kode cukup panjang, dan fungsinya mengembalikan pointer ini untuk memungkinkan chaining.
sumber
function(x).should == 2
untuk menjadi tes tunggal, sedangkan yang lain akan menggabungkan 10 dari mereka bersama-sama dan menyebutnya tes tunggal.Kami harus mengurutkan semua fungsi dalam kelas sesuai abjad, untuk membuatnya "lebih mudah ditemukan". Sudahlah ide itu drop-down. Itu terlalu banyak klik.
(pemimpin teknologi yang sama menulis aplikasi untuk menghapus semua komentar dari kode sumber kami).
sumber
Pada tahun 1987, saya menerima pekerjaan di sebuah perusahaan yang mempekerjakan saya karena saya adalah salah satu dari segelintir orang yang tahu bagaimana menggunakan Wahyu. Revelation, jika Anda belum pernah mendengarnya, pada dasarnya adalah implementasi sistem operasi Pick berbasis PC - yang, jika Anda belum pernah mendengarnya, mendapatkan namanya dari penemunya, Dick Pick yang bernama luar biasa. Banyak yang bisa dikatakan tentang Pick OS, sebagian besar bagus. Sejumlah vendor supermini (setidaknya Prime dan MIPS) menggunakan Pick, atau implementasi kustom mereka sendiri.
Perusahaan ini adalah toko Perdana, dan untuk sistem in-house mereka, mereka menggunakan Informasi. (Tidak, itu benar-benar namanya: itu adalah implementasi Prime Pick.) Mereka memiliki kontrak dengan negara untuk membangun sistem berbasis PC, dan telah menempatkan sekitar satu tahun ke dalam proyek Wahyu mereka sebelum orang itu melakukan semua pekerjaan, yang juga direktur SIM mereka, memutuskan dia tidak bisa melakukan kedua pekerjaan lagi dan mempekerjakan saya.
Bagaimanapun, ia telah menetapkan sejumlah standar pengkodean untuk perangkat lunak berbasis Prime mereka, banyak di antaranya berasal dari dua kondisi dasar: 1) penggunaan terminal bisu 80-kolom, dan 2) fakta bahwa sejak Prime tidak "Aku tidak punya editor visual," tulisnya sendiri. Karena portabilitasnya yang ajaib dari kode Pick, ia membawa editornya turun ke Revelation, dan telah membangun seluruh proyek pada PC yang menggunakannya.
Wahyu, tentu saja, karena berbasis PC, memiliki editor layar penuh yang sangat bagus, dan tidak keberatan ketika Anda melewati kolom 80. Namun, selama beberapa bulan pertama saya di sana, dia bersikeras bahwa saya menggunakan editor dan standarnya.
Jadi, standar pertama adalah bahwa setiap baris kode harus dikomentari. Setiap baris. Tidak ada pengecualian. Alasannya adalah bahwa bahkan jika komentar Anda mengatakan dengan tepat apa yang baru saja Anda tulis dalam kode, harus berkomentar berarti Anda setidaknya memikirkan kalimat itu dua kali. Juga, ketika dia dengan riang menunjukkan, dia telah menambahkan perintah ke editor yang memformat setiap baris kode sehingga Anda bisa memberikan komentar akhir.
Oh ya. Ketika Anda mengomentari setiap baris kode, itu dengan komentar end-of-line . Singkatnya, 64 karakter pertama dari setiap baris adalah untuk kode, lalu ada titik koma, dan kemudian Anda memiliki 15 karakter untuk menggambarkan apa yang dilakukan 64 karakter Anda. Singkatnya, kami menggunakan konvensi bahasa assembly untuk memformat kode Pilih / Dasar kami. Ini menyebabkan hal-hal yang terlihat seperti ini:
(Sebenarnya, setelah 20 tahun saya akhirnya lupa sintaksis garis-kelanjutan R / Basic, jadi mungkin terlihat berbeda. Tetapi Anda mendapatkan idenya.)
Selain itu, setiap kali Anda harus memasukkan komentar multiline, aturannya adalah Anda menggunakan kotak bunga:
Ya, tanda bintang yang menutup pada setiap baris diperlukan. Lagi pula, jika Anda menggunakan editornya, itu hanya perintah editor sederhana untuk menyisipkan kotak bunga.
Membuatnya mengalah dan membiarkan saya menggunakan editor bawaan Revelation cukup sulit. Awalnya dia ngotot, hanya karena itu aturannya. Ketika saya keberatan bahwa a) saya sudah tahu editor Wahyu b) itu jauh lebih fungsional daripada editornya, c) pengembang Wahyu lainnya akan memiliki perspektif yang sama, dia menjawab bahwa jika saya tidak melatih editornya saya tidak akan pernah dapat bekerja pada basis kode Prime, yang, seperti yang kita berdua tahu, tidak akan terjadi selama neraka tetap tidak beku lagi. Akhirnya dia menyerah.
Tetapi standar pengkodean adalah yang terakhir pergi. Komentar kotak-bunga khususnya adalah buang-buang waktu, dan dia bertarung denganku, mengatakan bahwa jika aku hanya menggunakan editor yang tepat, mempertahankannya akan sangat mudah. (Semuanya menjadi sangat pasif-agresif.) Akhirnya saya diam-diam menyerah, dan sejak saat itu pada semua kode yang saya bawa ke ulasan kode memiliki komentar kotak bunga yang berharga.
Suatu hari, beberapa bulan di pekerjaan, ketika saya telah membuktikan diri saya lebih dari kompeten (terutama dibandingkan dengan parade coders luar biasa yang melewati kantor itu ketika saya bekerja di sana), dia melihat dari balik bahu saya ketika saya bekerja, dan dia perhatikan saya tidak menggunakan komentar kotak bunga. Oh, saya katakan, saya menulis formatter kode sumber yang mengubah komentar saya menjadi gaya Anda ketika saya mencetaknya. Lebih mudah daripada mempertahankannya di editor. Dia membuka mulut, berpikir sejenak, menutupnya, pergi, dan kami tidak pernah berbicara tentang standar pengkodean lagi. Kedua pekerjaan kami menjadi lebih mudah setelah itu.
sumber
Pada pekerjaan pertama saya, semua program C, tidak peduli seberapa sederhana atau kompleks, hanya memiliki empat fungsi. Anda memiliki utama, yang disebut tiga fungsi lainnya secara bergantian. Saya tidak dapat mengingat nama mereka, tetapi mereka adalah sesuatu di sepanjang baris begin (), middle (), dan end (). begin () membuka file dan koneksi basis data, end () menutupnya, dan middle () melakukan yang lainnya . Tak perlu dikatakan, middle () adalah fungsi yang sangat panjang.
Dan hanya untuk membuat segalanya lebih baik, semua variabel harus bersifat global.
Salah satu kenangan paling bangga saya tentang pekerjaan itu adalah menjadi bagian dari pemberontakan umum yang menyebabkan penghancuran standar-standar itu.
sumber
goto
.Standar pengkodean C yang ditulis secara eksternal yang memiliki aturan 'jangan mengandalkan prioritas operator bawaan, selalu gunakan tanda kurung'
Cukup adil, niat yang jelas adalah untuk melarang:
mendukung:
Masalahnya, ini ditegakkan oleh alat yang mengikuti aturan sintaks C yang '=', '==', '.' dan akses array adalah operator. Jadi kode seperti:
harus ditulis sebagai:
sumber