C11

Tässä artikkelissa käsittelemme C11-aihetta laajasta ja täydellisestä lähestymistavasta. Seuraavien linjojen mukaisesti perehdymme C11:een liittyviin keskeisiin näkökohtiin, analysoimme sen vaikutuksia, seurauksia ja mahdollisia tulevaisuudennäkymiä. C11 on erittäin tärkeä aihe nykyisessä kontekstissa, joten on tärkeää ymmärtää sen ulottuvuudet ja laajuus. Yksityiskohtaisen ja kattavan analyysin avulla pyrimme valaisemaan C11:tä ja tarjoamaan lukijalle yksityiskohtaisen ja tarkan näkemyksen, jonka avulla he voivat syventyä tähän aiheeseen syvällisesti ja rikastuttavalla tavalla.

Tämä artikkeli kertoo C-kielen ISO-standardiversiosta. Sähkömoottorijunasta katso C11 (juna).

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:2012

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)
  • 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