c/c++概述

c/c++的学习分为两个部分

一、语言标准

语言标准定义了功能特性和标准库两部分。

功能特性由编译器负责具体实现,比如linux下gcc,windows下Visual Studio

标准库实现依赖于具体平台,比如linux下c标准库是glibc,windows下的MSVCRT.DLL。

c/c++是有国际标准化组织ISO制定标准,网址为:https://www.iso.org

c11标准参考:https://www.iso.org/standard/57853.html

c++2017参考:https://www.iso.org/standard/68564.html

以上是需要收费才能下载,我的百度网盘中可下载:https://pan.baidu.com/s/1Dc6lyRPryC9ShbPsZ1U5uQ,提取码:c8kw

其他可以免费查看的网站:

各种语言或软件API文档:https://tool.oschina.net/apidocs

c/c++语言参考:https://zh.cppreference.com

除了参考语言标准,也可对照具体实现进行学习

glibc官方文档:https://www.gnu.org/software/libc/manual/html_node/index.html

二、运行环境

c/c++程序生成的可执行程序,由操作系统加载运行。因此这部分的学习主要学会使用操作系统相关API,比如文件操作,进程线程相关,网络通信等。

应用程序可通过系统调用与操作系统进行交互。系统调用需要操作寄存器等,所以glibc封装了这部分操作,提供了简单的c语言接口

linux下系统调用在内核代码中sys_call_table定义。

windows下有kernel32.dll、user32.dll、gdi32.dll实现了系统API。

总结:

学习c/c++除了学习基本语法,标准库和系统API的学习将是重点。

linux系统调用列表官方列表:http://man7.org/linux/man-pages/dir_section_2.html

https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html

部分内容参考自:https://www.cnblogs.com/findumars/p/9000371.html

原文地址:https://www.cnblogs.com/zhaiyunyun/p/12012234.html