C11

C11 on C-kielen ISO-standardiversio ISO/IEC 9899:2011, joka julkaistiin joulukuussa 2011.

C11 korvasi aiemman standardin C99. C11:n on korvannut uusin standardi C18.

Standardille on julkaistu yksi korjaus: ISO/IEC 9899:2011/Cor 1:2012https://www.iso.org/standard/61717.html

 Ominaisuudet 
C11 ominaisuudet:
 parannettu Unicode tuki (ISO/IEC TR 19769:2004)
 atomiset operaatiot standardikirjastoon
 Säikeistyksen tuki ja mtx_t
 avainsanat tietotyyppien pakkaukselle (alignment)
 _Noreturn-määritys funktioille
 geneeriset makrot _Generic-avainsanan avulla
 tuki säikeistykselle ja atomisuudelle (_Thread_local, <threads.h>, _Atomic  ja <stdatomic.h>)
 parannettu Unicode-tuki (char16_t, char32_t, <uchar.h>, u8-literaalit)
 gets-funktio poistettu vaarallisena
 anonyymit structit ja unionit (struct T { int tag; union { float x; int n; }; };)
 makrot liukulukujen tyyppien tarkasteluun
 makrot imaginaarilukujen luomista varten
 _Static_assert  käännösaikaisten tarkastusten laatimista varten
 quick_exit-funktio
 suuri joukko mm. printf-, scanf ja str*-perheen funktioita on korvattu _s-päätteisillä joilla voidaan korvata pienellä vaivalla tietoturvaltaan kyseenalaisia funktioita (Annex K)http://www.drdobbs.com/cpp/the-new-c-standard-explored/232901670?pgno=2
 analysoitavuus (Annex L)

C11 sallii toteutukset, joissa osaa standardista ei ole toteutettu. Valinnaisia osia ovat kompleksiluvut, IEC 60559 -liukuluvut, säikeistys ja atomisuus ja liitteet K ja L.

 Lähteet 

Luokka: C