Microsoft Visual Studio ช่วยเพิ่มการรองรับภาษา C

Visual Studio IDE ของ Microsoft ได้เพิ่มการรองรับสำหรับมาตรฐานภาษา C11 และ C17 C ดังนั้นการขยายการสนับสนุนที่ จำกัด ก่อนหน้านี้ของ IDE สำหรับ C11 และ C17 กลายเป็นเวอร์ชันภาษาที่รองรับโดยเริ่มจาก Visual Studio 2019 16.8 Preview 3 ซึ่งเผยแพร่เมื่อวันที่ 14 กันยายน

หลายปีที่ผ่านมา Visual Studio ได้ จำกัด การสนับสนุน C สำหรับสิ่งที่จำเป็นสำหรับภาษา C ++ ซึ่งสร้างขึ้นเพื่อเป็นส่วนขยายของ C ตอนนี้ตัวประมวลผลล่วงหน้าที่ใช้โทเค็นที่สอดคล้องกันได้ถูกเพิ่มลงในคอมไพเลอร์ สวิตช์คอมไพเลอร์สองตัว/std:c11 และ /std:c17ถูกเพิ่มเพื่อให้สอดคล้องกับมาตรฐาน ISO C ล่าสุด

C11 และ C17 ฟังก์ชันการทำงานที่ได้รับการสนับสนุนเช่น_Pragma, และrestrict Static_assertIntelliSense สามารถทำงานร่วมกับคุณลักษณะเหล่านี้ได้โดยใช้.cนามสกุลไฟล์สำหรับไฟล์ต้นฉบับหรือ/TCสวิตช์คอมไพเลอร์เพื่อเปิดใช้งานการเน้นไวยากรณ์สำหรับรหัส C อย่างไรก็ตามการไฮไลต์ IntelliSense มีให้บริการสำหรับคำหลักเท่านั้นไม่ใช่มาโครที่นำมาใช้โดยส่วนหัวมาตรฐาน รุ่นในอนาคตจะแก้ไขปัญหานี้

ด้วยการรวมตัวประมวลผลล่วงหน้าที่ใช้โทเค็นเข้าด้วยกันคอมไพลเลอร์ C ใหม่ทั้งสองสวิตช์จะบ่งบอกถึง / Zc: ตัวประมวลผลล่วงหน้า นักพัฒนาที่ต้องการใช้พรีโปรเซสเซอร์ที่ใช้อักขระแบบดั้งเดิมควบคู่ไปกับ C11 หรือ C17 จะต้องผ่าน/Zc:preprocessor-สวิตช์คอมไพเลอร์

Microsoft อธิบาย C17 ว่าเป็นรุ่นแก้ไขข้อบกพร่องของ ISO C ข้อแตกต่างเพียงอย่างเดียวระหว่างรุ่น C11 และ C17 คือ _ STDC_versionมาโครใน C17 แม้ว่า Visual Studio จะไม่มีการสนับสนุนสำหรับคุณสมบัติเสริม C11 แต่ Microsoft ก็วางแผนที่จะเพิ่มคุณสมบัติเสริมที่มีประสิทธิภาพมากที่สุดในรุ่นต่อ ๆ ไป การสนับสนุนอะตอมและเธรดอยู่ในแผนงานผลิตภัณฑ์ 

ในการใช้ C11 และ C17 ในโปรแกรมนักพัฒนาต้องมีการอัปเดต Insider Preview Windows SDK ล่าสุดเพื่อทำงานร่วมกับตัวประมวลผลล่วงหน้าที่สอดคล้องและรันไทม์ Universal C ใหม่ นักพัฒนาสามารถสร้างบัญชี Microsoft ฟรี (//signup.live.com) จากนั้นเลือกเข้าร่วมโปรแกรม Insider Microsoft ได้โพสต์ชุดคำแนะนำสำหรับการเริ่มต้นใช้งาน C11 และ C17

Visual Studio 2019 16.8 Preview 3 ยังมีการปรับปรุงการสนับสนุน C ++ 20 ในคอมไพเลอร์ไลบรารีมาตรฐานและ IDE โมดูลแนวคิดโครูทีนและบางช่วงสามารถใช้ได้ในโปรเจ็กต์เดียวกัน