2013-06-04 33 views
5

Tôi đã đọc qua một số thực hành tốt nhất cho dự án GNOME, và một điều mà họ nhấn mạnh là tránh các tính năng của C99, vì sự hỗ trợ vẫn chưa phổ biến rộng rãi. Một số điều mà họ đã đề cập là các tính năng như bình luận một dòng và khai báo các biến ở giữa một khối. Nó làm cho tôi tự hỏi, là C99 hỗ trợ, ngay cả đối với các tính năng cơ bản như ý kiến ​​//, thực sự vẫn không phổ biến? Đã gần 15 năm kể từ khi tiêu chuẩn được thông qua, và chúng tôi thậm chí đã có một tiêu chuẩn mới được đưa ra trong thời gian đó. Đây thực sự vẫn là một vấn đề?Hỗ trợ C99 có thực sự vẫn chưa phổ biến?

Trả lời

6

http://en.wikipedia.org/wiki/C99#Implementations

Có vẻ như nó vẫn là một chút của một vấn đề, ngay cả trong GCC, mặc dù nó trông giống như một số trình biên dịch thương mại đã thực hiện toàn bộ tiêu chuẩn.

Microsoft đã nói nhiều lần không có kế hoạch triển khai chuẩn C99 tại bất kỳ thời điểm nào trong tương lai, đó là một sự xấu hổ đối với lập trình C trên Windows.

+1

Huh. Bạn có biết tại sao MS sẽ không triển khai C99? –

+2

http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/ Khi tôi hiểu nó, họ sẽ chỉ thực hiện các tính năng được tập hợp con của các tiêu chuẩn C++. – Nobilis

+2

@kunkelwe: Bởi vì sự tham gia duy nhất của Microsoft trong quy trình tiêu chuẩn C là phá hoại nó. –

6

Chỉ "trình biên dịch C" có liên quan đến từ xa có thể được sử dụng cho ứng dụng dành cho máy tính để bàn hoặc ứng dụng di động nhưng không hỗ trợ C99 là MSVC. Nếu bạn đang viết phần mềm nhúng cho các hệ thống tối nghĩa với trình biên dịch độc quyền của riêng họ, tránh các tính năng C99 có thể có ý nghĩa, nhưng sự lựa chọn trong Gnome không có ý nghĩa gì cả.

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