博客
关于我
c/c++语言基础——杂七杂八概念
阅读量:482 次
发布时间:2019-03-06

本文共 1999 字,大约阅读时间需要 6 分钟。

C标准

C标准个人理解为对C语言的定义,并附加一堆头文件,接口和数据定义等的合集。它规范了程序、编译器等的编写。

常见的C标准由以下的几种(摘自wiki):
C89:In 1983, the American National Standards Institute formed a committee, X3J11, to establish a standard specification of C. The standard was completed in 1989 and ratified as ANSI X3.159-1989 "Programming Language C." This version of the language is often referred to as "ANSI C". Later on sometimes the label "C89" is used to distinguish it from C99 but using the same labelling method.
C99:In March 2000, ANSI adopted the ISO/IEC 9899:1999 standard. This standard is commonly referred to as C99. 
This standard has been withdrawn by both ANSI/INCITS and ISO/IEC in favour of C11.
C11:"C11" is the current standard for the C programming language. Notable features introduced over the previous revision include improved Unicode support, type-generic expressions using the new _Generic keyword, a cross-platform multi-threading API (threads.h) and atomic types support in both core language and the library (stdatomic.h).

 

libc

libc是一个泛指,简单来说就是C函数库,当然这里所说的C函数是有一定的标准的,只要是符合这些C标准的库函数都可以是libc。

 

glibc

glibc是GNU的libc,linux下使用的一般就是glib。

 

静态库

这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大--空间,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。

 

动态库

这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执行文件比较小。由于函数库没有被整合进你的程序,而是程序运行时动态的申请并调用,所以程序的运行环境中必须提供相应的库。动态函数库的改变并不影响你的程序,所以动态函数库的升级/更新比较方便。

 

STL

C++标准库中,字符串、容器、算法和迭代器四部分采用了模板技术,一般统称为STL(standard template library)。

在C++标准中,STL被组织成下面的13个头文件:
<algorithm> <deque> <functional> <iterator> <vector> <list> <map> <memory> <numeric> <queue> <set> <stack> <utility>。

 

MFC

微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

 

cross compiler

A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running.

 

转载地址:http://vuodz.baihongyu.com/

你可能感兴趣的文章
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql skip-grant-tables_MySQL root用户忘记密码怎么办?修改密码方法:skip-grant-tables
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
MYSQL sql语句针对数据记录时间范围查询的效率对比
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql sysbench测试安装及命令
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
MySQL Troubleshoting:Waiting on query cache mutex
查看>>
mysql union orderby 无效
查看>>
mysql v$session_Oracle 进程查看v$session
查看>>
mysql where中如何判断不为空
查看>>
MySQL Workbench 使用手册:从入门到精通
查看>>
MySQL Workbench 数据库建模详解:从设计到实践
查看>>
MySQL Workbench 数据建模全解析:从基础到实践
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>