Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
C (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|General-purpose programming language}} {{Redirect|C programming language|the book|The C Programming Language}} {{Distinguish|C++|C Sharp (programming language){{!}}C#}} {{pp-pc}} {{Use mdy dates|date=October 2024}} {{Infobox programming language | name = C | logo = The C Programming Language logo.svg | logo caption = Logotype used on the cover of the first edition of ''[[The C Programming Language]]''<ref name="C in a Nutshell">{{Cite book|url={{GBurl|id=4Mfe4sAMFUYC}}|title=C in a Nutshell|last1=Prinz|first1=Peter|last2=Crawford|first2=Tony|date=December 16, 2005|publisher=O'Reilly Media, Inc.|isbn=9780596550714|page=3|language=en}}</ref> | paradigm = [[Multi-paradigm]]: [[Imperative programming|imperative]] ([[Procedural programming|procedural]]), [[structured programming|structured]] | designer = [[Dennis Ritchie]] | developer = ANSI X3J11 ([[ANSI C]]); [[ISO/IEC JTC 1/SC 22|ISO/IEC JTC 1 (Joint Technical Committee 1) / SC 22 (Subcommittee 22)]] / WG 14 (Working Group 14) (ISO C) | latest release version = [[C23 (C standard revision)|C23]] | latest release date = {{start date and age|2024|10|31}} | latest preview version = C2y (N3220) | latest preview date = {{start date and age|2024|2|21}}<ref>{{cite web|url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3221.htm|title=N3221 – Editor's Report, Post January 2024 Strasbourg France Meeting|work=ISO/IEC JTC1/SC22/WG14|publisher=Open Standards|date=February 21, 2024|access-date=May 24, 2024}}</ref> | typing = [[Type system|Static]], [[Strong and weak typing|weak]], [[Manifest typing|manifest]], [[Nominal type system|nominal]] | implementations = [[Portable C Compiler|pcc]], [[GNU Compiler Collection|GCC]], [[Clang]], {{nowrap|[[Intel C++ Compiler|Intel C]]}}, [[C++Builder]], {{nowrap|[[Microsoft Visual C++]]}}, {{nowrap|[[Watcom C/C++|Watcom C]]}} | dialects = [[Cyclone (programming language)|Cyclone]], [[Unified Parallel C]], [[Split-C]], [[Cilk]], [[C*]] | influenced = [[:Category:C programming language family|Numerous]]: [[AMPL]], [[AWK]], [[C shell|csh]], [[C++]], [[C--]], [[C Sharp (programming language)|C#]], [[Objective-C]], [[D (programming language)|D]], [[Go (programming language)|Go]], [[Java (programming language)|Java]], [[JavaScript]], [[JS++]], [[Julia (programming language)|Julia]], [[Limbo (programming language)|Limbo]], [[LPC (programming language)|LPC]], [[Perl]], [[PHP]], [[Pike (programming language)|Pike]], [[Processing (programming language)|Processing]], [[Python (programming language)|Python]], [[Rust (programming language)|Rust]], [[Seed7]], [[V (programming language)|V (Vlang)]], [[Vala (programming language)|Vala]], [[Verilog]] (HDL),<ref name="vinsp">{{cite web|title=Verilog HDL (and C)|url=http://cs.anu.edu.au/courses/ENGN3213/lectures/lecture6_VERILOG_2010.pdf|date=June 3, 2010|access-date=August 19, 2013|publisher=The Research School of Computer Science at the Australian National University|quote=1980s: Verilog first introduced; Verilog inspired by the C programming language|url-status=dead|archive-url=https://web.archive.org/web/20131106064022/http://cs.anu.edu.au/courses/ENGN3213/lectures/lecture6_VERILOG_2010.pdf|archive-date=November 6, 2013}}</ref> [[Nim (programming language)|Nim]], [[Zig (programming language)|Zig]] | operating system = [[Cross-platform]] | year = {{start date and age|1972}}<ref name="dottcl_2">{{harvtxt|Ritchie|1993}}: "Thompson had made a brief attempt to produce a system coded in an early version of C—before structures—in 1972, but gave up the effort."</ref> | influenced by = [[B (programming language)|B]] ([[BCPL]], [[CPL (programming language)|CPL]]), [[ALGOL 68]],<ref name="dottcl_1">{{harvtxt|Ritchie|1993}}: "The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of."</ref> [[PL/I]], [[FORTRAN]] | file ext = .c, .h | website = {{URL|https://www.c-language.org/}}<br /> {{URL|https://www.iso.org/standard/82075.html}}<br /> {{URL|www.open-std.org/jtc1/sc22/wg14/}} | wikibooks = C Programming }} '''C''' (''pronounced'' {{IPAc-en|'|s|iː}}'' – like the letter [[c]]'')<ref>{{cite web |title=The name is based on, and pronounced like the letter C in the English alphabet |url=https://eng.ichacha.net/pronounce/the%20c%20programming%20language.html |url-status=live |archive-url=https://web.archive.org/web/20221117151137/https://eng.ichacha.net/pronounce/the%20c%20programming%20language.html |archive-date=November 17, 2022 |access-date=November 17, 2022 |website=the c programming language sound |publisher=English Chinese Dictionary |language=en-US}}</ref> is a [[general-purpose programming language]]. It was created in the 1970s by [[Dennis Ritchie]] and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted [[Central processing unit|CPUs]]. It has found lasting use in [[operating system]]s code (especially in [[Kernel (operating system)|kernels]]<ref>{{Cite web |last=Munoz |first=Daniel |title=After All These Years, the World is Still Powered by C Programming {{!}} Toptal |url=https://www.toptal.com/c/after-all-these-years-the-world-is-still-powered-by-c-programming |access-date=June 15, 2024 |website=Toptal Engineering Blog}}</ref>), [[device driver]]s, and [[protocol stack]]s, but its use in [[application software]] has been decreasing.<ref>{{cite web |date=August 9, 2016 |title=C Language Drops to Lowest Popularity Rating |url=https://www.developer.com/news/c-language-drops-to-lowest-popularity-rating/ |url-status=dead |archive-url=https://web.archive.org/web/20220822225609/https://www.developer.com/news/c-language-drops-to-lowest-popularity-rating/ |archive-date=August 22, 2022 |access-date=August 1, 2022 |website=Developer.com |language=en-US}}</ref> C is commonly used on computer architectures that range from the largest [[supercomputer]]s to the smallest [[microcontroller]]s and [[embedded system]]s. A successor to the programming language [[B (programming language)|B]], C was originally developed at [[Bell Labs]] by Ritchie between 1972 and 1973 to construct utilities running on [[Unix]]. It was applied to re-implementing the kernel of the Unix operating system.<ref name="sigplan" /> During the 1980s, C gradually gained popularity. It has become one of the most widely used [[programming language]]s,<ref name="langpop">{{cite web |url=http://www.langpop.com/ |title=Programming Language Popularity |year=2009 |access-date=January 16, 2009 |url-status=dead |archive-url= https://web.archive.org/web/20090116080326/http://www.langpop.com/ |archive-date=January 16, 2009}}</ref><ref name="TIOBE-2009">{{cite web |url=http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html | title=TIOBE Programming Community Index |year=2009 |access-date=May 6, 2009 |url-status=dead |archive-url= https://web.archive.org/web/20090504181627/http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html |archive-date=May 4, 2009}}</ref> with C [[compiler]]s available for practically all modern [[computer architecture]]s and [[operating system]]s. The book ''[[The C Programming Language]]'', co-authored by the original language designer, served for many years as the ''de facto'' standard for the language.<ref name="ward198308">{{cite news |last=Ward |first=Terry A. |url=https://archive.org/stream/byte-magazine-1983-08/1983_08_BYTE_08-08_The_C_Language#page/n267/mode/2up |title=Annotated C / A Bibliography of the C Language |work=Byte |date=August 1983 |access-date=January 31, 2015 |pages=268}}</ref><ref name="C in a Nutshell"/> C has been standardized since 1989 by the [[American National Standards Institute]] (ANSI) and, subsequently, jointly by the [[International Organization for Standardization]] (ISO) and the [[International Electrotechnical Commission]] (IEC). C is an [[Imperative programming|imperative]] [[Procedural programming|procedural]] language, supporting [[structured programming]], [[lexical variable scope]], and [[Recursion (computer science)|recursion]], with a [[static type system]]. It was designed to be [[compiled]] to provide [[Low-level programming language|low-level]] access to [[Computer memory|memory]] and language constructs that map efficiently to [[machine instructions]], all with minimal [[Runtime system|runtime support]]. Despite its low-level capabilities, the language was designed to encourage cross-platform programming. A [[Specification (technical standard)|standards]]-compliant C program written with [[Software portability|portability]] in mind can be compiled for a wide variety of computer platforms and operating systems with few changes to its source code. Since 2000, C has consistently ranked among the top four languages in the [[TIOBE index]], a measure of the popularity of programming languages.<ref>{{cite web|title=TIOBE Index for September 2024|url=https://www.tiobe.com/tiobe-index/|access-date=September 20, 2024|archive-date=September 18, 2024|archive-url=https://web.archive.org/web/20240918165843/https://www.tiobe.com/tiobe-index/|url-status=live}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)