C11

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

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

Standardille on julkaistu yksi korjaus: ISO/IEC 9899:2011/Cor 1:2012[2]

Ominaisuudet

C11 ominaisuudet:[1]

  • parannettu Unicode tuki (ISO/IEC TR 19769:2004)
  • atomiset operaatiot standardikirjastoon[3]
  • Säikeistyksen tuki ja mtx_t[4]
  • 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)[5]
  • 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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.