Tôi đang vật lộn để tìm lời khuyên thực tế trong thực tế về các quy ước đặt tên hàm cho một dự án thư viện C cỡ trung bình. Dự án thư viện của tôi được tách thành một vài mô-đun và mô-đun con với các tiêu đề riêng và theo một cách lỏng lẻo theo kiểu OO (tất cả các hàm đều có cấu trúc nhất định làm đối số đầu tiên, không có toàn cục, v.v.). Nó đặt thứ gì đó như:
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
Nói chung, các hàm quá lớn so với (ví dụ) dính some_foo_action
và another_foo_action
trong một foo.c
tệp thực hiện, làm cho hầu hết các hàm tĩnh và gọi nó là một ngày.
Tôi có thể xử lý tước bỏ các ký hiệu bên trong ("mô-đun riêng tư") khi xây dựng thư viện để tránh xung đột cho người dùng của mình với các chương trình máy khách của họ, nhưng câu hỏi đặt ra là làm thế nào để đặt tên các ký hiệu trong thư viện của tôi? Cho đến nay tôi đã làm:
struct MyLibFoo;
void MyLibFooSomeAction(MyLibFoo *foo, ...);
struct MyLibBar;
void MyLibBarAnAction(MyLibBar *bar, ...);
// Submodule
struct MyLibFooBaz;
void MyLibFooBazAnotherAction(MyLibFooBaz *baz, ...);
Nhưng tôi kết thúc với tên biểu tượng dài điên rồ (dài hơn nhiều so với các ví dụ). Nếu tôi không đặt tiền tố tên với "không gian tên giả", tên biểu tượng bên trong của mô-đun sẽ bị xung đột.
Lưu ý: Tôi không quan tâm đến trường hợp lạc đà / trường hợp Pascal, v.v., chỉ tên của chính họ.
git merge
ing. Ví dụ, tôi có một mô-đun để vẽ UI với OpenGL và tôi có.c
các tệp riêng cho từng thành phần mà tôi cần (slider.c
,indicator.c
v.v.). Các triển khai phần tử này có chức năng vẽ chính có thể dài vài trăm dòng và một số lượngstatic
người trợ giúp hợp lý bên trong. Họ cũng gọi một vài hàm hình học thuần túy từ bên trong mô-đun UI. Nghe có vẻ khá điển hình?