ISO/IEC 9899:2018
Information technology — Programming languages — C
Information technology — Programming languages — C
- Статус документа:
- Отменён
- Формат:
- Электронный (PDF)
- Количество страниц:
- 520
- Дата публикации:
- 5 июля 2018 г.
- Издание:
- ISO/IEC IS 9899 edition 4 version 1
- ICS:
- 35.060
1 This document specifies the form and establishes the interpretation of programs written in the C programming language.1) 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. 2 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.
Abstract
Overview
ISO/IEC 9899:2018 is the international standard that defines the C programming language (fourth edition, 2018). It specifies the formal form, syntax, semantic rules and environment for writing and interpreting C programs, and it defines the standard C library (standard headers and their behavior). The document also lists what it intentionally does not cover, such as the mechanisms for transforming or invoking programs on a specific data-processing system and limits tied to particular hardware.
Key Topics
The standard provides authoritative, implementable specifications including:
- Language form and semantics: lexical elements, declarations, expressions, statements, type system, storage duration and linkage rules.
- Translation and execution environment: conceptual models for translation units, execution environments, character sets, signals and environmental limits.
- Preprocessing and macros: conditional inclusion, file inclusion, macro replacement, predefined macros and pragma behavior.
- Standard library: definitions for headers such as stdio.h, stdlib.h, stdint.h, string/memory, math/complex, atomics, threads-related primitives, and utility functions; diagnostics and error handling.
- Conformance and limits: rules a conforming implementation must follow and the restrictions/limits it may impose.
- Numeric and floating-point behavior: floating environment, rounding and exception handling, format conversion and limits.
- Advanced features: atomics, alignment, variable arguments, and complex/wide character handling.
Practical Applications
ISO/IEC 9899:2018 is the reference for:
- Compiler and toolchain developers building C compilers, preprocessors, linkers and runtime libraries to ensure C compiler conformance.
- Embedded systems engineers who must match language behavior to constrained hardware and environmental limits.
- Software developers and library authors aiming for portable, standards-compliant C code across platforms.
- Static analysis, verification and security teams using formal language rules to detect undefined behavior, portability issues and security defects.
- Educators and documentation authors teaching the C language with a current, authoritative specification.
Adopting the standard improves portability, interoperability and correctness for C projects, and is essential when writing low-level or safety-critical code that depends on precise language semantics.
Related standards
- POSIX (operating-system interfaces commonly used with C)
- ISO C++ standard (for interoperability and differences between C and C++)
- Other ISO/IEC standards addressing tooling and language-specific libraries
Keywords: ISO/IEC 9899:2018, C programming language standard, C standard library, C compiler conformance, programming languages - C.
Технические детали
- Технический комитет
- ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces
- SKU
- ISO/IEC 9899:2018
Похожие стандарты
Другие стандарты ISO
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…
ISO 15638-15:2014
ДействующийIntelligent transport systems — Framework for cooperative telematics applications for regulated vehicles (TAR…
Overview - ISO 15638-15:2014 (Vehicle location monitoring, TARV) ISO 15638-15:2014 is part of the ISO 15638 suite for Intelligent Transport Systems (ITS) and defines the framework and data specificat…