Microsoft Visual Studio IDE přidalo podporu pro jazykové standardy C11 a C17 C, čímž se rozšířila dříve omezená podpora IDE pro C. C11 a C17 se stanou podporovanými jazykovými verzemi počínaje Visual Studio 2019 16.8 Preview 3, který byl vydán 14. září.
Po celá léta má Visual Studio omezenou podporu C na cokoli, co bylo požadováno pro jazyk C ++, který byl vytvořen jako rozšíření C. Nyní byl do kompilátoru přidán konformní tokenový preprocesor. Dva přepínače kompilátoru, / std: c11
a / standardní: c17
, byly přidány za účelem zajištění shody s nejnovějšími normami ISO C.
Podporovány jsou funkce C11 a C17, jako např _P
ragma
, omezit
, a Static_assert
. IntelliSense může s těmito funkcemi pracovat pomocí a .C
přípona souboru pro zdrojové soubory nebo / TC
přepínač kompilátoru pro povolení zvýraznění syntaxe pro kód C. Zvýraznění IntelliSense je však aktuálně k dispozici pouze pro klíčová slova, nikoli pro makra zavedená standardními záhlavími. Budoucí vydání to napraví.
Se zahrnutím vyhovujícího preprocesoru založeného na tokenech dva nové přepínače kompilátoru C znamenají / Zc: preprocesor. Vývojáři, kteří chtějí vedle C11 nebo C17 používat tradiční znakový preprocesor, budou muset projít / Zc: preprocesor-
přepínač kompilátoru.
Microsoft popsal C17 jako vydání opravy chyby ISO C. Jediné rozdíly mezi verzemi C11 a C17 jsou _STDC_verze
makro v C17. Zatímco Visual Studio nenabízí žádnou podporu pro volitelné funkce C11, Microsoft plánuje přidat nejúčinnější volitelné funkce do budoucích verzí. Atomová podpora a podpora vláken jsou v plánu produktu.
Aby vývojáři mohli používat C11 a C17 v programech, musí mít nejnovější aktualizace Insider Preview Windows SDK, aby mohli pracovat s vyhovujícím preprocesorem a novým runtime Universal C. Vývojáři si mohou vytvořit bezplatný účet Microsoft (//signup.live.com) a poté se přihlásit do programu Insider. Společnost Microsoft zveřejnila řadu pokynů, jak začít s C11 a C17.
Visual Studio 2019 16.8 Preview 3 také nabízí vylepšenou podporu pro C ++ 20 v kompilátoru, standardní knihovně a IDE. Ve stejném projektu lze použít moduly, koncepty, korutiny a některé rozsahy.