Я намагаюся знайти практичні поради в реальному світі щодо конвенцій щодо іменування функцій для проекту середньої величини бібліотеки C. Мій проект бібліотеки розділений на декілька модулів та підмодулів із власними заголовками, і він слідує стилю OO (усі функції приймають певну структуру як перший аргумент, без глобалістів тощо). Тут закладено щось на зразок:
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
Як правило, функції занадто великі, щоб (наприклад) зберігатись, some_foo_action
і another_foo_action
в одному foo.c
файлі реалізації роблять більшість функцій статичними та називають це щодня.
Я можу мати справу з позбавленням своїх внутрішніх ("модулів приватних") символів під час створення бібліотеки, щоб уникнути конфліктів для моїх користувачів з їх клієнтськими програмами, але питання полягає в тому, як назвати символи в моїй бібліотеці? Поки що я робив:
struct MyLibFoo;
void MyLibFooSomeAction(MyLibFoo *foo, ...);
struct MyLibBar;
void MyLibBarAnAction(MyLibBar *bar, ...);
// Submodule
struct MyLibFooBaz;
void MyLibFooBazAnotherAction(MyLibFooBaz *baz, ...);
Але я закінчую божевільні довгі назви символів (набагато довші, ніж приклади). Якщо я не префіксую імена "фальшивим простором імен", внутрішні назви символів модулів все стикаються.
Примітка: Мене не хвилює справа з верблюдом / Паскалем тощо, лише самі назви.
git merge
ін. В якості прикладу у мене є модуль для малювання UI з OpenGL, і у мене є окремі.c
файли для кожного елемента , що мені потрібно (slider.c
, іindicator.c
т.д.). У цих реалізаціях елементів є основна функція малювання, довжина якої може становити кілька сотень рядків, і значна кількістьstatic
помічників. Вони також називають кілька функцій чистої геометрії з модуля інтерфейсу користувача. Це звучить досить типово?