C23

C23 on C-kielen ISO-standardiversio ISO/IEC 9899:2024, joka julkaistiin lokakuussa 2024. Valmistumista odotettiin vuonna 2023, jolloin sen nimeksi olisi tullut C23 (epävirallisesti nimellä C2x).[1][2][3][4]

C23 korvaa aiemman standardin C18.

Ehdotetut ominaisuudet jäädytettiin lokakuussa 2021 äänestämistä varten.[5][6] Muutoksia standardissa ovat muun muassa:[7]

  • vanhan tyylisten esittelyjen ja määrittelyjen poisto (ilman prototyyppiä)[8]
  • muiden kuin kahden komplementtimuotojen käyttö etumerkillisistä kokonaisluvuista poistuu (yhden komplementti)
  • desimaaliset liukuluvut (DECFP) finanssimatematiikan käyttöön[9]
  • u8 merkkivakiot[10]
    • esimerkiksi syntaksilla u8'a' joka vastaa a-kirjainta Unicodena
  • tyhjä alustus = {}[11]
  • nullptr vakio[12]
  • true ja false avainsanoiksi[13]
  • trigraph-tuen (kolmen merkin esitysmuodot) poistuminen: kolmen merkin esitysmuoto tulkitaan yhdeksi merkiksi, joka on yleensä virhetilanne eikä ohjelmoijan aikomus.[14] Trigraph-sarjat esiteltiin C89-standardissa vaihtoehtoisena esityksenä tietyille merkeille, joita käytetty merkistö ei tukenut. Trigraph-jakso alkaa merkeillä ?? ja tulkitaan invarianteiksi: # [ ] { } \ | ~ ^.[15]
  1. WG 14 Document Log open-std.org. Viitattu 11.3.2020. (englanniksi)
  2. Revised C23 Schedule (PDF) open-std.org. Viitattu 26.2.2022. (englanniksi)
  3. Updated C23 Schedule (PDF) open-std.org. Viitattu 6.3.2024. (englanniksi)
  4. ISO/IEC 9899:2024 iso.org. Viitattu 31.1.2025. (englanniksi)
  5. Jens Gustedt: Feature freeze for C23 gustedt.wordpress.com. 16.10.2021. Viitattu 21.11.2022. (englanniksi)
  6. WG 14 Document Log open-std.org. Viitattu 21.11.2022. (englanniksi)
  7. C23 en.cppreference.com. Viitattu 21.11.2022. (englanniksi)
  8. Remove support for function definitions with identifier lists (PDF) open-std.org. Viitattu 21.11.2022. (englanniksi)
  9. Decimal floating-point arithmetic (PDF) open-std.org. Viitattu 21.11.2022. (englanniksi)
  10. Adding the u8 character prefix (PDF) open-std.org. Viitattu 21.11.2022. (englanniksi)
  11. Consistent, Warningless, and Intuitive Initialization open-std.org. Viitattu 21.11.2022. (englanniksi)
  12. Introduce the nullptr constant open-std.org. Viitattu 21.11.2022. (englanniksi)
  13. Make false and true first-class language features (PDF) open-std.org. Viitattu 21.11.2022. (englanniksi)
  14. Removing trigraphs??! (PDF) open-std.org. Viitattu 8.3.2024. (englanniksi)
  15. Rationale for International Standard—Programming Languages—C (PDF) open-std.org. huhtikuu 2003. Viitattu 8.3.2024. (englanniksi)

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne