C 是一种通用的命令式计算机编程语言,支持结构化编程,静态类型变量可防止许多意外操作。通过设计,C 提供了有效映射到典型机器指令的结构,因此它已经在以前用汇编语言编写的应用程序(包括操作系统)以及从超级计算机到嵌入式系统的各种计算机应用软件中得到了长期使用。
尽管该语言具有低级功能,但该语言旨在鼓励跨平台编程。可以为各种各样的计算机平台和操作系统编译符合标准且可移植编写的 C 程序,其源代码几乎没有变化。从嵌入式微控制器到超级计算机,这种语言已经广泛应用于各种平台。
C 最初由 Dennis Ritchie 于 1969 年至 1973 年间在贝尔实验室开发,用于重新实现 Unix 操作系统。它已成为有史以来使用最广泛的编程语言之一,来自不同供应商的 C 编译器可用于大多数现有的计算机体系结构和操作系统。

通用编译器

编译 C 程序的过程在编译器和操作系统之间有所不同。大多数操作系统都没有编译器,因此你必须安装一个。一些常见的编译器选择是:

以下文档应该为你提供有关如何开始使用一些最常见的编译器的良好概述:

  • Microsoft Visual C 入门
  • GCC 入门

    编译器 C 版支持

    请注意,编译器对标准 C 具有不同级别的支持,许多仍然不完全支持 C99。例如,自 2015 年发布以来,MSVC 支持 C99 的大部分但仍然有一些重要的例外支持语言本身(例如预处理似乎不符合)和 C 库(例如 <tgmath.h>),它们也不一定需要文档他们的依赖于实现的选择维基百科有一个表格, 显示一些流行编译器提供的支持。
    一些编译器(特别是 GCC)提供或继续提供编译器扩展,这些扩展实现了编译器生产者认为必要,有用或相信可能成为未来 C 版本的一部分的附加功能,但目前不是任何 C 标准的一部分。由于这些扩展是特定于编译器的,因此可以认为它们不是交叉兼容的,并且编译器开发人员可以在以后的编译器版本中删除或更改它通常可以通过编译器标志来控制这种扩展的使用。
    此外,许多开发人员的编译器仅支持他们所针对的环境或平台强加的特定 C 版本。.
    如果选择编译器,建议选择目标环境所允许的对最新版本的C语言有最佳支持的编译器。

    代码风格(这里是偏离主题):

    因为 C 中的空格是无关紧要的(也就是说,它不会影响代码的操作),程序员经常使用空格来使代码更容易阅读和理解,这称为代码风格。它是编写源代码时使用的一组规则和准则。它涵盖的问题包括如何缩进行,是否应使用空格或制表符,如何放置大括号,如何在操作符和括号周围使用空格,如何命名变量等等。
    代码风格不在标准范围内,主要是基于意见(不同的人发现不同的风格更容易阅读),因此,它通常被认为是关于 SO 的偏离主题。在一个人自己的代码中,关于样式的最重要的建议是,一致性是最重要的 - 选择或制作一种风格并坚持下去。只需解释一下,通常使用的各种命名样式通常由程序员选择,而不是创建自己的样式。
    一些常见的缩进样式有:K&R 风格,Allman 风格,GNU 风格等。其中一些样式有不同的变体。例如,Allman 被用作常规的 Allman 或流行的变体 Allman-8。有关一些流行风格的信息可以在维基百科上找到。这些样式名称取自作者或组织经常发布的标准,供许多参与其代码的人使用,这样每个人都可以在知道样式时轻松阅读代码,例如构成部分代码的 GNU 格式指南 。在 GNU 编码标准文档。
    一些常见的命名约定是:UpperCamelCase,lowerCamelCase,lower_case_with_underscore,ALL_CAPS 等。这些样式以各种方式组合以用于不同的对象和类型(例如,宏通常使用 ALL_CAPS 样式)
    通常建议在 SO 文档中使用 K&R 样式,而不鼓励使用更为深奥的样式,例如 Pico。

    C 标准未涵盖的库和 API(这里也偏离主题):

  • POSIX API(涵盖例如 PThreadsSocketsSignals