Mark all as read

Posts tagged c

1 child tag

Use this tag for questions concerning use of the C programming language and for questions containing code in the C language. Avoid using it together with the C++ tag unless your question is explicitly about code compatibility or differences between C and C++.

Unless the question explicitly mentions which version of the C standard that is uses, the current active version of ISO 9899 is assumed (C17/C18).

When applicable, always include information about which compiler and target system you are using.

The C language is a general-purpose programming language developed by Dennis Ritche at Bell Labs in the early 1970s. The original purpose was kernel- and application programming for the UNIX operative system, which is why many of the standard functions and libraries in C originate from UNIX.

In the 70s and 80s, there was no formal standardization of C. The closest thing to a canonical source was the book The C Programming Language, written by Brian Kernighan and Dennis Ritchie. The book is referred to as "K&R" (Kernighan & Ritchie) and everything before standardization is therefore usually called "K&R C".

The first standardization of the language was carried out in USA, by ANSI in the year 1989. This first version is therefore widely known as "ANSI C". One year later in 1990, the ANSI standard was adopted internationally by ISO, why this version of the language is also often called "C90". Technically, "ANSI C", "C89" and "C90" are identical.

The language standard has since then been revised several times:

  • a minor revision in 1995 ("C95")
  • a major revision in 1999 ("C99")
  • a major revision in 2011 ("C11")
  • a minor revision in 2017 ("C17" or "C18", since it was released by the committee in 2017 but published by ISO in 2018).

These revisions are typically backwards compatible, but modern C code will not run on older compilers. C17 is the current standard. The C language is technically owned by ISO and it is maintained by the ISO committee JTC1/SC22/WG14.

The formal name for the standard is ISO/IEC 9899 - Information technology - Programming languages - C. Draft versions of the C standard are usually available free of charge, such as draft N1548 of C11.

+2 −1
Q&A What is do { } while(0) in macros and should we use it?

1 answer  ·  last activity about 3 hours ago by Moshi‭

Question c code-style macros
+6 −0
+3 −1
+11 −0
+8 −0
+4 −0
Q&A Generate SIGSEGV without undefined behaviour.

1 answer  ·  last activity 3 months ago by Lundin‭

Question c++ linux gcc
+10 −0
Q&A What is undefined behavior and how does it work?

1 answer  ·  last activity 3 months ago by Lundin‭