C/C++

开源公司:贝尔实验室

作品详情

中文名
C/C++
展开
发明时间
一九七八年
展开
标准
《K&R》标准
展开
外文名
C/ C Plus Plus
展开
发明者

1C语言的发展过程

当代最优秀的程序设计语言

早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。

C语言是当今最流行的程序设计语言之一,它的功能丰富、表达力强、使用灵活方便、应用面广、目标程序高、可植入性好,既有高级语言的特点,又有低级语言的许多特点,适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。C语言诞生后,许多原来用汇编语言编写的软件,现在都可以用C语言编写了(如UNIX操作系统),而学习和适用C语言要比学习和适用汇编语言容易得多。

C语言的特点

C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

C语言版本

目前最流行的C语言有以下几种:

·Microsoft Visual C++

·Borland Turbo C++

·AT&T C

这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。

2面向对象的程序设计语言

C++简介

在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C++目前流行的集成开发环境最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++2017。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。

C和C++关系

但是,C是C++的基础,C++语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。

C timeline

1978 k&R C---->1988 ANSI C-->1995 ISO C

学习C语言最经典的还是The C Programming Language,

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
案例
链接与装载(HOOK 库) PLT hook 的流程: - 读取进程的 maps 信息,获取到 ELF 文件在进程的 maps 中的内存基地址 - 验证 ELF 文件的头信息 - 从 PHT(`program header table`) 中找到类型为 `PT_LOAD` 且 offset 为 `0` 的 segment。计算 ELF 基地址。 - 从 PHT 中找到类型为 `PT_DYNAMIC` 的 segment,从中获取到 `.dynamic` section,从 `.dynamic` section中获取其他各项 section 对应的内存地址。 - 在 `.dynstr` se
2440c++编译器
优化 ASAN: 在 C/C++ 中,内存越界问题特别难排查,比如,线程 A 在写内存时,写越界了,操作了线程 B 的内存,线程 B 可能过了很久才去访问这块被写坏的内存,然后引起了问题,我们几乎无法从 core 文件中得到有用的信息。 ASAN 是业界所有的内存检测工具中性能最好的。与之对比的 valgrind、gperftools 会严重拖慢程序运行。 ASAN 是集成在 gcc、llvm 中的,由于我们使用的是 gcc 编译器,因此我优化了 gcc 源码中 ASAN 的运行时库实现。也就是优化了 ASAN 库中关于 malloc、free 的实现。
2570c++编译器
手写操作系统 我使用 C 语言和汇编语言实现了一个 32 位的操作系统 - 对于机器上电启动、Boot-Loader 引导程序、CPU的实模式到保护模式的跳转、以及中断有非常深入的理解。 - 基于二级页表,实现了内核层面的的内存分页机制,完成虚拟内存与物理内存之间的映射。 - 同时实现了内核级线程、用户级进程,和一个简单的用户级协程 - 参考 linux 下的 ext2 文件系统,实现了完整的文件系统,支持文件、目录的所有操作 - 实现了 fork 系统调用,完成了 shell 界面,目前支持常见的系统操作命令,可以完成简单的系统交互
基于STM32F10X系列单片机开发的网络中继器通信模块(INFOX)程序,建于Modbus通信协议上的RS485通讯程序的开发运用,编程语言使用C/C++编写Modbus函数构建请求和解析响应或使用现有库函数简化通信的实现;在通信程序中实现主站和从站功能,主站用于发送请求/从站用于响应请求,设定设备地址寻址编号以区分和查找设备,由Modbus协议功能码设定实现编码号对应执行所需功能操作,具备错误处理机制(超时响应,高频响应,乱码丢帧)返回错误码和诊断重联;INFOX中继器模块硬件功能(一路高速CAN通信端口,一路差分RS485通信端口,四路PWM互补输出其中两路防呆输出端口,四路按键输入输出
基于STM32F10X系列单片机开发的网络中继器通信模块(INFOX)程序,建于Modbus通信协议上的RS485通讯程序的开发运用,编程语言使用C/C++编写Modbus函数构建请求和解析响应或使用现有库函数简化通信的实现;在通信程序中实现主站和从站功能,主站用于发送请求/从站用于响应请求,设定设备地址寻址编号以区分和查找设备,由Modbus协议功能码设定实现编码号对应执行所需功能操作,具备错误处理机制(超时响应,高频响应,乱码丢帧)返回错误码和诊断重联;INFOX中继器模块硬件功能(一路高速CAN通信端口,一路差分RS485通信端口,四路PWM互补输出其中两路防呆输出端口,四路按键输入输出
当前共5502个项目

评论