1.2 C语言简介

一、为什么要讲C语言

  1. C语言是编程界的长青藤,可以查看语言排名发现,虽然现在语言很多,但是C语言一直占有一定地址

编程语言排名
编程语言排名变化

来源网站:https://www.tiobe.com/tiobe-index/

  1. 在系统、嵌入式、底层驱动等领域存在一定的唯一性(C语言库更完善)
  2. 现代的编程语言在语法上的差异很小(几乎都是C-like语言),其他语言在语法上差距不大

编程语言只是一个工具,而强大的生态才是语言被使用的核心,编程语言拥有更多的库 和 传统习惯(文档等)才是发展的核心

二、C语言的发展历史

C语言的出现
  • C语言是从B语言发展而来的,B语言是从BCPL发展而来的,PCPL是从FORTRAN发展而来的
  • PCPL和B都支持指针间接方式,所有C也支持了
  • C语言还受到PL/I 的影响,还和PDP-II 的机器语言有很大的关系
  • 1973年3月,第三版的Unix上出现了C语言的编译器
  • 1973年11月,第四版的 Unix(System Four)发布了,这个版本是完全用C语言重新写的
C语言的完善过程(C语言标准)
  • 经典C “K&R the C”
  • 1989年ANSI发布了一个标准 - ANSI C
  • 1990年ISO接受了ANSI的标准 - C89
  • C的标准在1995年 和 1999年两次更新 - C95 和 C99
  • 所有的当代编译器都支持C99

三、C语言用在哪里

  • 操作系统
  • 嵌入式系统
  • 驱动程序
  • 底层驱动
  • 图形引擎、图像处理、声音效果

C语言是一种工业语言,从而开发效率很重要,日常应用很少直接使用C语言编写。

四、开发环境

C语言需要被编译才能运行,所以你需要

  • 编辑器
  • 编译器
  • 或者 IDE(集成开发环境)
推荐软件
  • DEV C++
  • MS Visual Studio Express
  • Xcode
  • Eclipse-CDT
  • Geany
  • sublime
  • vim / emacs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/202595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch学习10-网络模型的保存和加载

系列文章目录 pytorch学习1-数据加载以及Tensorboard可视化工具pytorch学习2-Transforms主要方法使用pytorch学习3-torchvisin和Dataloader的使用pytorch学习4-简易卷积实现pytorch学习5-最大池化层的使用pytorch学习6-非线性变换(ReLU和sigmoid)pytorc…

HTML总结

HTML简介 HTML(Hyper Text Markup Language)的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本&#xff0c…

C++模板背后的黑箱操作:编译器

C模板背后的黑箱操作:编译器 编译器如何处理模板 模板代码的处理 为了理解模板的复杂性,你需要了解编译器是如何处理模板代码的。当编译器遇到模板方法定义时,它会进行语法检查,但实际上不会编译模板。编译器不能编译模板定义,…

Python Opencv实践 - 简单的AR项目

这个简单的AR项目效果是,通过给定一张静态图片作为要视频中要替换的目标物品,当在视频中检测到图片中的物体时,通过单应矩阵做投影,将视频中的物体替换成一段视频播放。这个项目的所有素材来自自己的手机拍的视频。 静态图片&…

Java注册并监听全局快捷键

背景 之前在博客中分享了SWT托盘功能, 随之带来一个问题, 当程序最小化后无法快速唤醒, 按照平时使用软件的思路, 自然想到了注册全局快捷键, 本文介绍使用java方式实现全局快捷键的注册. 方案 通过google,搜到一个现成的库: jintellitype, 使用maven可以直接引用, 非常方便…

istio为什么能代替传统的SpringCloud 服务网格Istio概述

服务网格Istio概述 什么是服务网格(Service Mesh)?istio简介边车模式(Sidecar)为什么istio能代替传统SpringCloud?整体架构 首先奉上 istio官网 什么是服务网格(Service Mesh)? 服务网格详解 服务网格(Se…

JS - 包装类型

目录 1,什么是包装类型2,作用3,和其他引用类型的区别4,如何为基本类型添加属性或方法 1,什么是包装类型 在 js 中,数据类型分为基本数据类型和引用数据类型。 而这2个类型有个明显的区别:引用…

SpringMVC修炼之旅(2)基础入门

一、第一个程序 1.1环境配置 略 1.2代码实现 package com.itheima.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;//定义…

【JaveSE】:认识异常

异常 一.异常的概念二.异常的体系结构1.基础结构2.异常分类 三.异常的处理1.防御式编程2.异常的抛出3.异常捕获4.try-catch捕获并处理5.finally 四.异常处理流程五.自定义异常 一.异常的概念 在Java中,将程序执行过程中发生的不正常行为称为异常。 算术异常 数组越界…

推荐一款手持式ECU刷写设备,国产软件配合使用

同星智能开发的一款手持式ECU刷写工具——TF1011,在TSMaster中导入诊断流程即可离线一键刷写。在 PC 端完成配置后,在设备可以在手持式离线场景下实现:基于 UDS 协议的诊断和基于 UDS 协议的 Flash Bootloader 程序更新功能。 产品简介—TF10…

Spring 面试题——事务

目录 1.谈谈对 Spring 事务的理解。2.Spring 管理事务的方式有哪几种?3.✨Spring 事务底层源码是如何实现的?3.1.后置处理3.2.事务执行3.3.总结 4.Transactional 注解有什么作用?它的常用属性有哪些?5.✨Spring 事务中的传播行为是…

ansible常用模块介绍

ansible运行模块的两种方式 Ad - Hoc 利用 ansible 命令直接完成管理 , 主要用于临时命令使用场景 ansible westos -m shell -a ls /mnt playbook ansible 脚本 , 主要用于大型项目场景 , 需要前期的规划 vim test.yml - hosts: all task…

【栈】车队

题目: /** 单调栈:存储到终点的时间,需要考虑浮点数* 思路:首先按照距离进行排序(目的:如果离终点远的车辆用时比前面的车辆用时短,则是一个车队)* 排序后计算每一辆车辆的时间如果用…

web:[SUCTF 2019]CheckIn(一句话木马,.user.ini)

题目 页面显示 上传文件&#xff0c;随便上传一个文件试试 上传了一个文本&#xff0c;显示失败&#xff0c;不是图片 那就换图片马上传试试 不能包含<?,换一种写法&#xff0c;需要加上GIF89a&#xff0c;进行exif_imagetype绕过 上传成功 这里用.user.ini或者用post传参…

甘草书店:#8 2023年11月22日 星期三「“说一套做一套”的甘草与麦田」

最近与甘草书店的投资方和意向投资方沟通&#xff0c;听取了来自不同领域不同人群的观点。他们讲的都有道理&#xff0c;但他们说的都不是甘草。就像“麦田”成立之前&#xff0c;世间没有“麦田”一样&#xff1b;“甘草”出现之前&#xff0c;世间没有也没有“甘草”。 故事…

力扣116. 填充每个节点的下一个右侧节点指针(详细讲解root根节点的理解)

题目&#xff1a; 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右…

220V工频正弦波逆变器设计

摘 要 与传统逆变器相比&#xff0c;工频正弦波逆变器具有电容电压应力低的优点。但是工频正弦波逆变器存在开关器件电压应力大和开关频率高的缺陷。将SPWM调制策略应用于工频正弦波逆变器&#xff0c;并在不产生电流纹波的条件下实现了最大调制度&#xff0c;不仅能够减小开关…

05.开闭原则(Open Closed Principle)

“你这个人怎么这么轴&#xff1f;让你改改以前的代码怎么和要了你命似的&#xff1f;难道你的能力仅限于此吗&#xff1f;” “你懂什么&#xff1f;我有我的原则&#xff01;我有我的信仰&#xff01;” 一言 开闭原则即&#xff1a;对扩展开放&#xff0c;对修改关闭&#…

D. In Love

贪心&#xff0c;维护最靠左的右端点以及最靠右的左端点 // Problem: D. In Love // Contest: Codeforces - Codeforces Round 905 (Div. 3) // URL: https://codeforces.com/contest/1883/problem/D // Memory Limit: 256 MB // Time Limit: 2000 ms // // Powered by CP Edi…

【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目

从0配置JAVA项目相关环境 写在最前面一、安装Java的jdk环境1. 下载jdk2. 配置jdk3. 配置环境变量 二、在vscode中配置java运行环境1. 下载VSCode2. 下载并运行「Java Extension Pack」 三、安装mysql1.官网下载MySQL2.开始安装如果没有跳过安装成功 3.配置MySQL Server4.环境变…