首页 > 其他分享 >C语言 01 概述

C语言 01 概述

时间:2024-03-16 13:00:12浏览次数:18  
标签:01 语言 Unix C语言 编译器 ISO BCPL World 概述

历史

C 语言是一门面向过程的计算机编程语言,于 1972 年诞生于贝尔实验室。

C 语言是丹尼斯·里奇(Dennis Ritchie)以 B 语言为基础发展而来,因此他被称为 C 语言之父

C 语言为什么命名为 C ?

1967 年,剑桥大学的 Martin Richards 对 CPL(Combined Programming Language)语言进行了简化,于是产生了 BCPL(Basic Combined Programming Language)语言

1969 年,美国贝尔实验室的肯·汤普森(Ken Thompson),以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取 BCPL 的首字母),并且用 B 语言写了初版 Unix 操作系统

1972 年,美国贝尔实验室的丹尼斯·里奇(Dennis Ritchie)在 B 语言的基础上最终设计出了一种新的语言,他取了 BCPL 的第二个字母 C 作为这种语言的名字,这就是 C 语言

1973 年初,C 语言的主体完成。汤普森和里奇用它完全重写了 Unix。

随着 Unix 的发展,C 语言自身也在不断地完善。

截至目前,各种版本的 Unix 内核和周边工具仍然使用 C 语言作为最主要的开发语言。

1982年,美国国家标准协会(ANSI)为了使 C 语言健康地发展下去,决定成立 C 标准委员会,建立 C 语言的标准。

1989 年,ANSI 发布了第一个完整的 C 语言标准,简称 C89,也称其为 ANSI C

1990 年,国际标准化组织 ISO(International Standard Organization)一字不改地采纳 C89,发布 C90

1999 年,在做了一些必要的修正和完善后,ISO 发布 C99

2011 年,ISO 发布 C11

2018 年,ISO 发布 C17(也被称为 C18)。

2022 年,ISO 发布 C23

编译器

  • GCC:GNU Compiler Collection 的缩写,GNU 组织开发的开源免费的编译器(常用)。
  • MinGW:Minimalist GNU for Windows 的缩写,Windows 操作系统下的GCC。
  • Clang:开源的 BSD 协议的基于 LLVM 的编译器。
  • Visual C++:Microsoft VC++ 自带的编译器。

Hello World

学习一门语言写的第一个程序就是 Hello World,这既是基础,也是仪式:

#include<stdio.h>

int main()
{
    printf("Hello World\n");
    return 0; 
}

简单来说,一个C程序就是由若干 头文件函数 组成。

mark

  • #include <stdio.h> 是一条预处理命令, 它的作用是通知 C 语言编译系统在对 C 程序进行正式编译之前需做一些预处理工作。
  • 函数 就是实现代码逻辑的一个小的单元。(注意:C 程序一定是从主函数开始执行的)
  • \n 是转义字符中的换行符。

标签:01,语言,Unix,C语言,编译器,ISO,BCPL,World,概述
From: https://www.cnblogs.com/skysailstar/p/18076956

相关文章

  • 【C语言初阶(五)】数组
    ❣博主主页:33的博客❣▶文章专栏分类:C语言从入门到精通◀......
  • C语言项目工程目
    1.文件类型头文件(HeaderFiles):通常以.h作为扩展名,头文件包含了程序中所需要的各种函数、变量、宏定义等的声明,以及各种库函数的引用等源文件(SourceFiles):通常以.c作为扩展名,源文件包含了程序的实现代码库文件(LibraryFiles):库文件是一些预编译好的对象文件的集合,包......
  • LibreOJ 3591 「USACO 2018.02 Platinum」Cow Gymnasts
    以\(0\)为初始下标。考虑到这个平台之间的转移不是很好处理,于是考虑换个角度,考虑每个高度。这里定义高度为\(i\)的奶牛就是下一次操作要走\(i\)步的奶牛。然后考虑去分析合法序列的性质。性质\(1\):高度为\(x\)的奶牛在移动后的高度依然为\(x\),即这个过程可以看作每......
  • 实验 1 C语言开发实验环境和数据类型、运算符、表达式
     ......
  • LeetCode01.两数之和
    ques:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums=......
  • [HNOI2012] 矿场搭建 题解
    [HNOI2012]矿场搭建前置知识:#Tarjan求点双连通分量题目大意​ 给你一张无向连通图,任意删去其中一个点,要求在删点后在每个连通块中有一个点被选择,问至少需要选择多少个点,以及选择的方案数。输入输出格式输入​ 多组数据以\(N=0\)结束​ 每组数据第一行为边的数量\(N\(N......
  • 实验1 C语言输入输出和简单程序编写
    task1.1#include<stdio.h>intmain(){ printf("O\n"); printf("<H>\n"); printf("II\n"); printf("O\n"); printf("<H>\n"); printf("II\n"); return0;}task1.2#......
  • PTA- - -个位数统计(C语言)
    Hello,好久没更新啦,今天给大家讲解一下PTA平台上面的“个位数统计”这道题吧~题目是要统计一个数字每个位上数字出现的次数。下面是一个解决方案的思路和相应的C语言代码:思路:初始化一个大小为10的数组,用于计数每个数字(0-9)出现的次数。读取输入的数字N作为字符串,这样可......
  • P2824 [HEOI2016/TJOI2016] 排序 与 ABC297_g Range Sort Query 题解
    洛谷题目链接:排序abc题目链接:Atcoder或者洛谷两道差不多的题拿出来说说。本题有双\(\log\)做法,也有单\(\log\)做法,都讲讲。双\(\log\)做法对于第一个题而言,询问最终\(pos\)位置上的数为多少,那么这个问题是否具有单调性?这个是很有意思的点,我们考虑只关注某个数\(x\)......
  • 实验1_C语言输入输出和简单程序应用编程
    task11#include<stdio.h>2#include<stdlib.h>3intmain()4{56printf("o\to\n");7printf("<H>\t<H>\n");8printf("II\tII\n");910system("pa......