01/10/2018, 00:44

Visual Studio 2012 C++ là C99 hay C11?

Chào mọi người ạ?
Mọi người cho em hỏi Visual Studio 2012 sử dụng C99 hay C11 ạ?
Và làm sao mình có thể kiểm tra được nó?
Em xin chân thành cảm ơn.
Chúc mọi người 1 ngày vui vẻ.

Nguyễn Tấn Khoa viết 02:52 ngày 01/10/2018

Mọi người cho em hỏi Visual Studio 2012 sử dụng C99 hay C11 ạ?

Visual Studio không có dùng compiler riêng bên ngôn ngữ C mà dung chung với compiler C++ luôn

Visual Studio 2012 dùng chuẩn C++11 nên có bao gồm luôn C99. Mình chỉ biết vậy

Nguyễn Tuấn Nam viết 02:51 ngày 01/10/2018

Nhưng em thấy cái initializer list chỉ sử dụng C11 mà em cài visual studio 2012 lại không thể sử dụng được nó @@~

Nguyễn Tấn Khoa viết 02:48 ngày 01/10/2018

Cũng có thể do bạn code sai

Mà C++11 chứ không phải C11 nhé

Nguyễn Tuấn Nam viết 02:55 ngày 01/10/2018

http://www.cplusplus.com/reference/initializer_list/initializer_list/
Trong trang này họ bảo sử dụng thư viện initialize_list mà em viết thư viện này ra nó bảo không có

Nguyễn Tấn Khoa viết 02:46 ngày 01/10/2018

Visual Studio 2012 vẫn hỗ trợ C++11 nhưng không hỗ trợ thư viện initializer_list. Bởi vì Microsoft có tuân theo chuẩn không là do họ.

Bạn xem thêm ở đây
https://msdn.microsoft.com/en-us/library/hh567368.aspx


Nếu muốn sử dụng thì bạn nâng cấp lên Visual Studio 2013 hoặc 2015 nhé

Nguyễn Tuấn Nam viết 02:49 ngày 01/10/2018

Vậy cho em hỏi Initializer_list trong C++ là gì ạ

Nguyễn Tấn Khoa viết 03:00 ngày 01/10/2018

Ý bạn là sao mình không hiểu.

Có phải bạn hỏi nó có phải thư viện chuẩn không
Hay hỏi cách sử dụng hay những lợi ích nó đem lại

Nguyễn Tuấn Nam viết 02:49 ngày 01/10/2018

Cách sử dụng và lợi ích đem lại ý ạ em đang tìm hiểu nó

Phương Trọng Lê viết 02:46 ngày 01/10/2018

Theo mình nhớ thì VS 2013 trở lên thì dùng được Initializer_list nhá, cách sử dụng của nó thì bạn tự xem trên web, còn lợi ích của nó thì giúp ta khởi tạo object mà không cần biết trước số lượng tham số truyền vào, tuy nhiên có một ràng buộc là các tham số truyền vào đó phải có cùng data type

Phương Trọng Lê viết 02:45 ngày 01/10/2018

Khi làm việc với c++ bạn nên cần biết một số thứ sau:

  • Các chuẩn C++ (C++98, C++03, C++11, C++14…) là do ISO đề xuất.
  • Các đề xuất đó chỉ mang tính chất tham khảo cho các nhà phát triển compiler, các nhà phá triển compiler thấy tính năng nào có ích thì họ đưa vào cho chuẩn C++ riêng của họ, không nhất thiết là phải đưa vào hết các tính năng của một chuẩn c++ mới vào. Hiện nay phổ biến nhất là các compiler: VC++ của MS, gcc của GNU
Nguyễn Tuấn Nam viết 02:58 ngày 01/10/2018

Em cảm ơn nhiều ạ

Pham Van Hai viết 03:00 ngày 01/10/2018

Chuẩn được đưa ra để đảm bảo sự thống nhất và tính khả chuyển, có thế chạy đc nhiều nền tảng của ngôn ngữ và đồng thời nâng cấp và cải thiện các tính năng mới nhằm tạo điều kiện thuận lợi cho các lập trình viết code nhanh, cải thiện hiệu năng của phần mềm. Đã là chuẩn thì thằng nào cũng phải theo, ngoài ra họ có thêm tính năng riêng của họ.
Hiện tại có 3 thằng đang tích hợp rất nhanh các chuẩn mới của c++ là g++(bộ biên dịch gcc), clang++, và VS C++. Bạn có thể tham khảo tiến trình ở đây:
http://en.cppreference.com/w/cpp/compiler_support

Bài liên quan
0