Bagaimana saya harus menandai tipe dalam program C dan C ++?


12

Dalam jawaban saya ini , saya menggunakan _tjenis yang paling akhir, yang paling kontroversial. Ini adalah praktik yang saya gunakan dalam proyek saya saat ini.

typedef struct {
    int x;
    int y;
} point_t;

Ini dimaksudkan agar konsisten dengan tipe C dari stddef.hsuka size_tatau ptrdiff_t. Namun, menurut komentar tertentu dalam pertanyaan saya, _tpostfix tampaknya dicadangkan untuk POSIX. Apa yang harus saya gunakan _t? Atau haruskah saya tetap menggunakan _t?

Pertanyaan ini untuk C dan C ++. Jika bahasa-bahasa ini memiliki konvensi yang berbeda, jangan ragu untuk menjawabnya.


2
Satu konvensi umum adalah memiliki nama kelas yang mirip dengan LookLikeThis. Pada titik itu Anda bahkan tidak perlu sufiks. (Ini lebih umum untuk Java, .net, dll. Tetapi berfungsi di C ++ juga.)
cHao

1
akhirnya ini adalah bentuk Notasi Hongaria. Dan diskusi itu tidak ada habisnya. Saya sendiri menentangnya sekarang dan pergi dengan solusi cao. Mengapa? Karena saya menggunakan Notasi Hongaria selama sekitar 4 tahun untuk semuanya, maka saya memutuskan untuk melakukan proyek tanpanya dan tidak melewatkannya sama sekali. Dan tidak membuang waktu untuk itu. Jadi saya menjatuhkannya sepenuhnya karena ternyata, tidak ada nilai sama sekali bagi saya. Dan saya tidak pernah melihat ke belakang.
stijn

1
Lihat pertanyaan ini untuk pengidentifikasi yang dilindungi undang-undang (termasuk _t) stackoverflow.com/a/228797/14065
Martin York

Jawaban:


16

Tidak ada konsensus dalam komunitas C dan C ++ terkait dengan jenis penamaan.

Meskipun _tsufiks memang dicadangkan oleh POSIX , beberapa akan menganjurkan penggunaan _tsufiks untuk tipe Anda sendiri, sementara sufiks lain juga akan berpendapat bahwa Anda tidak boleh menggoda nasib dengan mempertaruhkan nama rangkap dengan POSIX.

Konvensi penamaan alternatif menyarankan penggunaan awalan untuk jenis, seperti Catau T.


16

Saya menemukan sufiks agak jelek dan menghindari _tdll. Alternatif yang baik adalah menggunakan huruf kapital untuk memulai nama jenis, jadi Pointpada contoh Anda di atas.


3
dan saya merasa senang memiliki gaya yang BERBEDA dari tipe C standar, jadi membaca kode Anda dapat dengan mudah menemukan apa yang dari program klien dan apa itu API
Nikko

1
Juga teknik favorit saya. Jenis memiliki huruf besar awal. Semua pengidentifikasi lainnya bukan tipe dan karenanya mudah dilihat.
Martin York

Saya selalu berpikir itu terlihat sangat jelek juga. Senang melihat bahwa orang lain setuju dengan saya.
syb0rg

Saya hanya menggunakan PascalCase untuk tipe pointer (Karena bahasa seperti C # dan Java di mana PascalCase berarti kelas, yaitu referensi ke data) tapi saya mengerti dari mana Anda berasal.
yyny

1

Tergantung kamu. Kecuali jika ada pertentangan dengan kata-kata yang sudah Anda tentukan, Anda harus melakukannya. Namun, pertimbangkan skenario di mana Anda bekerja di sebuah perusahaan dan banyak orang mengakses basis kode yang sama, dan kode Anda sampai ke orang yang tidak mengetahui kebiasaan Anda. Dia kemudian dapat menganggap bahwa itu adalah tipe yang disediakan, terutama jika Anda menulis sesuatu seperti point_t. Jadi, jaga agar tetap simpel misalnya titik lebih sederhana dari titik_t. Dan jika Anda ingin menambahkan sesuatu ke dalamnya, tambahkan inisial nama Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.