2009-08-19 31 views
19

Tôi chủ yếu là một lập trình viên C# /. NET, nhưng hobby project mà tôi sắp thực hiện sẽ liên quan đến mã hóa trong c.Mã c hiện đại, đẹp như thế nào?

Tôi biết rằng có một tấn mã c trên mạng, nhưng rất khó tách riêng một dự án c có cấu trúc tốt khỏi dự án có cấu trúc kém nếu bạn không "lớn lên" với ngôn ngữ. Bất cứ ai có thể chỉ cho tôi hướng tới một dự án mới hơn, không tầm thường (nhưng không lớn) được coi là một ví dụ tốt về cách cấu trúc mã c?

Sửa

Nếu bạn không thể tìm thấy một dự án, cảm thấy tự do để thảo luận hay nói cách làm thế nào bạn nghĩ rằng một dự án c nên được cấu trúc.

Trả lời

14

Dave Hanson của C Interfaces and Implementations là một rất nổi crafted thư viện khoảng 7000 dòng mã. Cuốn sách là tuyệt vời nếu bạn có thể đủ khả năng đó.

Việc triển khai Lua ngôn ngữ lập trình và thư viện là khoảng 17.000 dòng mã C và được thực hiện rất tốt nhưng khá phức tạp ở các địa điểm — trình biên dịch và bộ thu gom rác không dễ hiểu lắm. Nhưng mã được thiết kế đẹp mắt.

Git là hơn 125.000 dòng mã. Tôi không thể khuyên bất cứ ai nghiên cứu nó như là một ví dụ về làm thế nào để kỹ sư mã C. Chỉ cần thiết kế và giao diện công cộng, hãy để một mình các triển khai, rất khó hiểu — đó là lý do tại sao có rất nhiều hướng dẫn git.

+0

+1 cho Lua. Tôi đã rất ngạc nhiên khi tôi đã xem xét dưới mui xe để xem nó sẽ được chấp nhận hiệu suất và chất lượng khôn ngoan cho một dự án phần mềm nhúng tôi đã được trên. – patros

+1

Git có phong cách và cấu trúc phù hợp nên đó là tài liệu tốt để học. Bạn không cần phải sẵn sàng mọi dòng của nó! –

+0

@Norman trông giống như sách có sẵn trên Safari. Tôi phải bỏ qua nó vì nó được 13 tuổi (giả định nó sẽ không được "mã hiện đại"), nhưng tôi sẽ kiểm tra nó ra trên đề nghị của bạn; cảm ơn! –

3

Đây là giai thoại hoàn toàn, nhưng tôi đã nghe rằng dự án SQLite được coi là mã tốt.

+0

Đó là API tốt nhất ít nhất :) – Skurmedel

5

Kiểm tra mã nguồn git: http://github.com/git/git/tree/master

+8

125.000 dòng mã cho lập trình C mới? Bạn có chắc không? –

+4

Đó là tất cả về cấu trúc và phong cách. Tuy nhiên, bạn không phải đọc từng dòng. –

6

tôi xem xét thực hiện IO language Steve Dekorte cho bạn trở thành một ví dụ điển hình cho thời hiện đại ngày sạch sẽ và thực dụng C.

+0

Tôi đồng ý, đó là mã thực sự hay. Tôi thích nó và tôi có thể hiểu nó ;-) – Friedrich

1

Cuốn sách sau (với các ví dụ code) có thể dễ dàng mô hình của bạn thay đổi một chút:

Stephen Kochan

Lập trình trong C, Third Edition

http://www.kochan-wood.com

1

Dự án SVN được viết hoàn toàn bằng C và được duy trì tốt: các kiểu bình luận, nhận xét tốt, mùi mã thấp. Tôi khuyên bạn nên perusing.

Các vấn đề liên quan