2015-01-07 17 views
19

Tôi thấy rằng VS2013 đã thêm hỗ trợ cho một số lượng lớn các tính năng ngôn ngữ chính của C99. Bây giờ nó hỗ trợ literals hợp chất, initializers được chỉ định, macro variadic, khai báo xen kẽ và báo cáo chỉ để tên một vài.Tình trạng chính thức của hỗ trợ C99 trong VS2013 là gì?

Điều này cho thấy rằng các nhà phát triển VS đã thực hiện các bước nghiêm túc đối với hỗ trợ C99 trong Visual Studio. Tuy nhiên, một số tính năng này không phải là một phần của ngôn ngữ C++, dường như là độ lệch đáng chú ý so với chiến lược phát triển đã công bố trước đó (ví dụ: "Trình biên dịch VS C sẽ chỉ hỗ trợ các tính năng C99 cũng là một phần của C++").

Vì vậy, có bất kỳ từ chính thức hoặc bán chính thức nào về những gì đang xảy ra không? Tôi dường như không thể tìm thấy bất cứ điều gì dứt khoát trên mạng. Các tính năng C99 này có được chính thức công bố không? Có cam kết tiếp tục hỗ trợ C99 trong VS không? Hay đây chỉ là một loại phát triển không chính thức "giả mạo"?

+0

Herb Sutter nói họ đã thêm vào đủ để có thể biên dịch ffmpeg trên VS2013, không có đầu mối làm thế nào họ đã đưa ra yêu cầu đó. – Praetorian

+0

http://msdn.microsoft.com/en-us/library/hh409293.aspx – BLUEPIXY

+0

tôi liên kết với C99 của họ gần đây [ở đây] (http://stackoverflow.com/a/18521417/1708801) –

Trả lời

10

Có một vài cuộc thảo luận chính thức của công chúng về điều này từ các nhà phát triển của Microsoft, các C++ Conformance Roadmap mà nói:

Herb cũng thông báo rằng, để đáp ứng với yêu cầu của khách hàng, phiên bản RTM cũng sẽ bao gồm một vài chiến thuật C99 mở rộng ngôn ngữ khi biên dịch mã C, do đó một số thư viện cộng đồng phổ biến (bao gồm FFmpeg) bây giờ sẽ có thể biên dịch với Visual C++ 2013.

vì vậy, đây có hỗ trợ chính thức nhưng là chiến lược, từ những gì tôi có thể nói dưới hình thức các bài viết sau hỗ trợ nhiều hơn sẽ phải cạnh tranh với các ưu tiên khác.

Chúng tôi có C++11/14 STL Features, Fixes, And Breaking Changes In VS 2013 Blog entry by STL:

Ngoài ra, một số tính năng C99 lõi ngôn ngữ sẽ được thực hiện trong 2013 RTM:

  • C99 _Bool

  • C99 literals hợp chất

  • C99 được chỉ định itializers

  • C99 biến tờ khai

C99 library support in Visual Studio 2013 blog entry by Pat Brenner mở đầu bằng:

Trong bài viết trên blog này, tôi muốn chia sẻ một số thông tin về sự hỗ trợ C99 thêm vào C chạy -thư viện thời gian trong Visual Studio 2013.

và kết thúc bằng:

Chúng tôi biết rằng đây không phải là hỗ trợ đầy đủ cho thư viện C99 chức năng. Theo hiểu biết tốt nhất của chúng tôi, các phần còn thiếu là các mục sau:

  • Tiêu đề tgmath.h bị thiếu.Cần hỗ trợ trình biên dịch C cho tiêu đề này. Lưu ý rằng tiêu đề ctgmath đã được bổ sung, điều này có thể bởi vì tiêu đề mà không đòi hỏi tiêu đề-chỉ ccomplex và cmath tiêu đề tgmath.h.
  • Tiêu đề uchar.h bị thiếu. Đây là từ C Unicode TR. Một số trình định dạng định dạng trong họ printf chưa được hỗ trợ.
  • Chức năng snprintf và snwprintf bị thiếu từ stdio.h và wchar.h.

mà là hơi thú vị hơn vì STL tích cực giải quyết ý kiến ​​để các blog và họ rất khó để tóm tắt nhưng chúng ta có thể thấy bổ sung trong tương lai sẽ phụ thuộc vào các ưu tiên cạnh tranh.

Nhờ cremno để chỉ ra một bài viết trên blog C Runtime (CRT) Features, Fixes, and Breaking Changes in Visual Studio 14 CTP1 mà nói:

Trong Visual Studio "14" CTP, chúng tôi đã thực hiện đầy đủ các C99 thư viện chuẩn, với ngoại lệ của bất kỳ tính năng thư viện mà phụ thuộc vào tính năng trình biên dịch chưa được hỗ trợ bởi trình biên dịch Visual C++ (đáng chú ý là <tgmath.h> không được triển khai). Có chắc chắn một số vấn đề phù hợp còn lại - chúng ta biết một số ít, trong đó có _Exit là mất tích và wcstok có chữ ký sai, và chúng tôi đang nỗ lực giải quyết này. Nếu bạn tìm thấy lỗi hoặc thiếu tính năng , vui lòng báo cáo tính năng này trên Microsoft Connect. Nếu bạn báo cáo lỗi ngay bây giờ, có một cơ hội rất tốt là chúng tôi có thể sửa chúng trước RTM.

và có nhiều chi tiết không thể tóm tắt dễ dàng.

+2

Nhân tiện, trong VS2015 '' và 'snprintf()' có sẵn. Ngoài ra còn có những thay đổi khác liên quan đến C99. Xem [this] (http://blogs.msdn.com/b/vcblog/archive/2014/06/18/crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1.aspx) bài đăng trên blog cũ hơn. – cremno

+0

@cremno cảm ơn bạn! Tôi đã xem xét điều này một vài lần cho các câu trả lời cũ hơn về VLAs và bỏ lỡ câu trả lời đó. –

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