ISO/IEC 9899:2024
Information technology — Programming languages — C
Information technology — Programming languages — C
- Статус документа:
- Действующий
- Формат:
- Электронный (PDF)
- Количество страниц:
- 758
- Дата публикации:
- 31 октября 2024 г.
- Издание:
- ISO/IEC IS 9899 edition 5 version 1
- ICS:
- 35.060
This document specifies the form and establishes the interpretation of programs written in the C programming language. It is designed to promote the portability of C programs among a variety of data-processing systems. It is intended for use by implementers and programmers. It specifies: — the representation of C programs; — the syntax and constraints of the C language; — the semantic rules for interpreting C programs; — the representation of input data to be processed by C programs; — the representation of output data produced by C programs; — the restrictions and limits imposed by a conforming implementation of C. This document does not specify: — the mechanism by which C programs are transformed for use by a data-processing system; — the mechanism by which C programs are invoked for use by a data-processing system; — the mechanism by which input data are transformed for use by a C program; — the mechanism by which output data are transformed after being produced by a C program; — the size or complexity of a program and its data that will exceed the capacity of any specific data-processing system or the capacity of a particular processor; — all minimal requirements of a data-processing system that is capable of supporting a conforming implementation. Annex J gives an overview of portability issues that a C program can encounter.
Abstract
Overview
ISO/IEC 9899:2024 - Fifth edition - is the international standard that defines the C programming language. It specifies the form, syntax, constraints and semantic rules for C programs to promote portability across a wide range of data‑processing systems. The standard is intended primarily for implementers (compiler and tool vendors) and programmers who need a precise, authoritative reference for writing and validating conforming C programs. Annex J provides an overview of portability issues a C program can encounter.
Key topics and technical requirements
- Language definition
- Representation of C programs, lexical elements (identifiers, keywords, constants, string literals, comments).
- Full syntax and constraints for expressions, declarations, statements, external definitions, and preprocessing directives.
- Semantic rules for interpreting programs, conversions, type compatibility, storage duration and linkage.
- Environment and execution
- Translation and execution environment models, character set and multibyte character handling, signals and interrupts, and environmental limits.
- Library
- Definitions and requirements for the standard headers and library functionality (diagnostics, character handling, math, atomics, floating‑point environment, etc.).
- Rules for reserved identifiers and use of library functions.
- Conformance and limits
- What a conforming implementation must support and the restrictions/limits it may impose.
- Explicit exclusions: the standard does not mandate build/invocation mechanisms, how input/output are transformed outside a C program, nor specific system capacity limits.
- Portability guidance
- Annex J highlights common portability pitfalls and portability considerations when moving C code between systems.
Practical applications and who uses it
- Compiler and tool implementers use the standard to implement and test conformant C compilers, preprocessors, linkers and static analyzers.
- Embedded and systems programmers rely on the standard to write portable, predictable low‑level code.
- Library maintainers and runtime implementers use the library and environment specifications to provide compliant standard headers and behavior.
- Educators and certifying bodies reference the standard for teaching C language fundamentals and for compliance testing.
Related standards (common references)
- POSIX specifications (for system interfaces commonly used alongside C)
- ISO/IEC 14882 (C++ standard) - for interoperability considerations in mixed-language projects
Keywords: ISO/IEC 9899:2024, C programming language, C standard, portability, C conformance, standard headers, compiler implementers, programming language specification.
Технические детали
- Технический комитет
- ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces
- SKU
- ISO/IEC 9899:2024
Похожие стандарты
Упомянутые в описании и другие стандарты ISO
BS ISO/IEC 14882:2024
ДействующийProgramming languages. C++.
ISO 8212:1986
ОтменёнSoaps and detergents — Techniques of sampling during manufacture
Overview Standard Reference: ISO 8212:1986 Title: Soaps and detergents - Techniques of sampling during manufacture ISO 8212:1986 defines standardized techniques for taking representative samples of s…
ISO 20662:2020
ДействующийShips and marine technology — Hopper dredger supervisory and control systems
Overview ISO 20662:2020 - Ships and marine technology: Hopper dredger supervisory and control systems (HD‑SCS) - specifies the components, structure, general requirements, and functional requirements…
ISO 3021:2023
ДействующийAdventure tourism — Hiking and trekking activities — Requirements and recommendations
Overview ISO 3021:2023 - Adventure tourism: Hiking and trekking activities - Requirements and recommendations defines safety-focused requirements and recommendations for hiking and trekking offered a…
ISO 3826-2:2008
ДействующийPlastics collapsible containers for human blood and blood components — Part 2: Graphical symbols for use on l…
Overview ISO 3826-2:2008 - "Plastics collapsible containers for human blood and blood components - Part 2: Graphical symbols for use on labels and instruction leaflets" defines a system of internatio…
ISO/IEC 24730-1:2014
ДействующийInformation technology — Real-time locating systems (RTLS) — Part 1: Application programming interface (API)
Overview ISO/IEC 24730-1:2014 specifies the Application Programming Interface (API) for Real‑Time Locating Systems (RTLS). The standard defines a minimal, interoperable boundary that lets application…
ISO 8668-5:1992
ДействующийAircraft — Terminal junction systems — Part 5: Detail specification for type 3 system
Overview - ISO 8668-5:1992 (Aircraft terminal junction systems, Type 3) ISO 8668-5:1992 defines the detail specification for Type 3 Terminal Junction Systems (TJS) used in aircraft electrical install…
ISO 7574-3:1985
ДействующийAcoustics — Statistical methods for determining and verifying stated noise emission values of machinery and e…
Overview ISO 7574-3:1985 is part of the ISO 7574 series on acoustics and provides a simple (transition) statistical method for determining and verifying stated noise emission values for batches (lots…