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

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

C语言标准与函数库体系

C语言标准

C语言的标准定义了语言的规范性、编译器要求以及程序设计的基本规则。它不仅规定了语言的语法和语义,还包含了编译器必须遵循的规定。标准的形成通常需要多年的讨论和验证,确保其兼容性和实用性。

C语言标准的发展

C语言的标准经历了多次更新和完善:

  • C89(ANSI C):1989年,美国国家标准协会(ANSI)发布了C语言的正式标准,称为ANSI X3.159-1989。该标准成为行业标准,后来常被称为ANSI C。

  • C99:2000年,ANSI采纳了ISO/IEC 9899:1999标准,成为C99。这一版本引入了更丰富的功能和修正。

  • C11:2011年,C11成为最新的C语言标准,新增了对多线程的支持、Unicode功能以及对原子操作的增强。

  • 这些标准的发布标志着C语言的持续发展,确保了不同平台和编译器之间的兼容性。

    C函数库(libc)

    libc是C语言程序开发中的核心工具,它包含了许多基础函数和API。这些函数涵盖了内存管理、文件操作、输入输出、数学计算等多个方面。开发者可以通过调用libc中的函数来完成大量常规任务。

    常见的C函数库

    • glibc:常见于Linux系统,是GNU项目的C函数库。它是许多Linux程序的基础,提供了丰富的功能和性能优化。
    • Microsoft Visual C++:微软的C函数库,主要面向Windows平台,集成了大量Windows API和控件。

    静态库与动态库

    在C语言项目中,函数库可以分为静态库和动态库两种形式:

    静态库

    • 特点:以.a为扩展名,编译时将函数库的代码直接编译到目标程序中。优点是程序独立性强,缺点是文件体积较大。
    • 适用场景:适合对函数库的依赖性要求较高的项目,尤其是在专用环境下。

    动态库

    • 特点:以.so为扩展名,编译时将函数库的代码保留为独立的文件。程序运行时通过加载动态库来完成函数调用。优点是文件体积小,易于升级和维护。
    • 适用场景:适合需要频繁更新或扩展的功能模块,能够提高程序的可维护性。

    标准模板库(STL)

    C++标准库的核心是STL(Standard Template Library),它通过模板技术提供了丰富的数据结构和算法:

    STL的主要组成部分

    • 容器:如vector、deque、list等,用于数据存储。
    • 算法:如sort、find等,提供常用操作。
    • 迭代器:定义了对容器操作的通用接口。
    • 其他工具:如map、set、queue等,支持更复杂的需求。

    STL通过标准化的接口和模板机制,极大地提升了C++程序的可读性和可扩展性。

    微软基础类库(MFC)

    MFC(Microsoft Foundation Classes)是微软提供的一个C++类库,它将Windows API封装到C++类中,提供了丰富的用户界面组件和应用程序框架:

    • 主要功能:
      • 窗口和控件的封装。
      • 常用窗口组件的支持,如按钮、文本框等。
      • 应用程序的基础架构,如主循环和消息处理。

    MFC简化了Windows程序开发,适合需要快速开发的项目。

    跨平台编译器(Cross Compiler)

    跨平台编译器可以将源代码编译成目标平台的可执行文件。它的主要作用是确保代码在不同操作系统和处理器上都能正确运行。跨平台编译器通常需要针对特定的目标平台进行优化,以确保性能和兼容性。

    跨平台编译器的应用场景

    • 嵌入式开发:在不同硬件平台上部署相同的软件。
    • 多平台应用:如开发跨平台的Web应用或移动应用。
    • 分发和部署:确保程序在不同环境下都能稳定运行。

    通过使用跨平台编译器,开发者可以有效地管理多平台开发过程,减少维护成本。

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

    你可能感兴趣的文章
    Python中使用wxpy定时机器人给微信好友发送每日一文
    查看>>
    Python中使用zip()并行迭代
    查看>>
    Python中使用推导式创建序列
    查看>>
    Python中信号处理程序和atexit处理程序的调用
    查看>>
    Python中关于txt的简单读写模式与操作
    查看>>
    Python中关于类和函数的初体验之"__init__"和"__str__"不是"_init_"和"_str_"
    查看>>
    python中函数接受参数为*args, **kwargs怎么办
    查看>>
    Python中切片的高效迭代
    查看>>
    python中列表乘法、eval、lambda、hasattr、assert、*(星)等的用法
    查看>>
    Python中制作词云的WordCloud参数详解
    查看>>
    Python中可用和使用的系统内存?
    查看>>
    python中存根文件(.pyi)的用途是什么?
    查看>>
    Python中实现ASCII码与字符相互转换
    查看>>
    Python中实现获取所有微信好友的头像并拼接成一张图片
    查看>>
    Python中对象的布尔值
    查看>>
    python中对集合的操作
    查看>>
    python中将列表转换为元组的时间复杂度,反之亦然
    查看>>
    Python中布尔表达式的求值
    查看>>
    python中很常用的10个内置函数整理(初学必备)
    查看>>
    python中打印二维列表数据
    查看>>