För vagntypen C11, se C11 (manövervagn).
C11, formellt ISO/IEC 9899:2011,http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57853 är en äldre (2011) standard för programspråket C. Under standardiseringsarbetet kallades den nya versionen för C1X. Det sista utkastet antogs officiellt av ISO som standard den 8 december 2011 och ersätter den tidigare standarden C99. C11 ersätts av standarden C17 (ISO/IEC 9899:2018) sedan juni 2018.
C11 standardiserar främst funktioner som redan har brett stöd bland C-kompilatorer. En stor nyhet är att ett bibliotek för trådning har införts. Samtidigt har flera funktioner gjorts frivilliga, så att en C-kompilator inte behöver stödja dem.
Ändringar från C99 Bland tilläggen från den förra versionen, C99, i språket och biblioteken finns: Ett system för att specificera och testa minnesjustering av data, vilket inkluderar nyckelorden _Alignas och alignof. Nyckelordet _Noreturn, som specificerar att en funktion inte kommer att returnera. Typgeneriska uttryck med hjälp av nyckelordet _Generic. Stöd för trådning genom biblioteken <threads.h> och <stdatomic.h>, samt nyckelorden _Thread_local och _Atomic. Förbättrat stöd för Unicode. Icke namngivna struct- och union-strukturer. Statiska tester (assertions) som till skillnad från preprocessorn har tillgång till bland annat variabeltyper. Fillåsning.
Utöver dessa tillägg har funktionen gets tagits bort till förmån till den säkra funktionen gets_s.
Frivilliga funktioner C11 tillåter implementationer att utelämna vissa delar av standarden, även sådana som var obligatoriska i C99. Ett program kan använda makron för att testa om en funktion finns tillgänglig vid kompileringen. Ett exempel är stödet för komplexa typer, som är frivilligt i C11 men ett krav för C99-kompatibilitet. För att testa i fall en kompilator har stöd för komplexa typer och biblioteket <complex.h> kan man testa om makrot __STDC_NO_COMPLEX__ är definierat.
Referenser
Se även C++11
Externa länkar N1570, det sista utkastet av C1X, 12 april 2011
Kategori:C (programspråk)