Saya berjuang untuk menemukan saran dunia nyata pragmatis tentang konvensi penamaan fungsi untuk proyek perpustakaan C berukuran sedang. Proyek perpustakaan saya dipisahkan menjadi beberapa modul dan submodul dengan tajuknya sendiri, dan secara longgar mengikuti gaya OO (semua fungsi menggunakan struct tertentu sebagai argumen pertama, tanpa global, dll). Itu meletakkan sesuatu seperti:
MyLib
- Foo
- foo.h
- foo_internal.h
- some_foo_action.c
- another_foo_action.c
- Baz
- baz.h
- some_baz_action.c
- Bar
- bar.h
- bar_internal.h
- some_bar_action.c
Secara umum fungsinya terlalu besar untuk (misalnya) menempel some_foo_action
dan another_foo_action
dalam satu foo.c
file implementasi, membuat sebagian besar fungsi statis, dan menyebutnya sehari.
Saya dapat menangani pengupasan simbol internal ("modul pribadi") saat membangun perpustakaan untuk menghindari konflik bagi pengguna saya dengan program klien mereka, tetapi pertanyaannya adalah bagaimana cara memberi nama simbol di perpustakaan saya? Sejauh ini saya sudah melakukan:
struct MyLibFoo;
void MyLibFooSomeAction(MyLibFoo *foo, ...);
struct MyLibBar;
void MyLibBarAnAction(MyLibBar *bar, ...);
// Submodule
struct MyLibFooBaz;
void MyLibFooBazAnotherAction(MyLibFooBaz *baz, ...);
Tapi saya berakhir dengan nama simbol panjang gila (lebih lama dari contoh). Jika saya tidak mengawali nama dengan "ruang nama palsu", simbol internal modul menamai semua bentrok.
Catatan: Saya tidak peduli dengan camelcase / Pascal case dll, hanya namanya saja.
git merge
ing. Sebagai contoh saya punya modul untuk menggambar UI dengan OpenGL, dan saya punya.c
file terpisah untuk setiap elemen yang saya butuhkan (slider.c
,indicator.c
dll). Implementasi elemen ini memiliki fungsi menggambar utama mungkin beberapa ratus baris panjang, dan cukup banyakstatic
pembantu di dalamnya. Mereka juga memanggil beberapa fungsi geometri murni dari dalam modul UI. Apakah itu terdengar agak khas?