博客
关于我
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的主要组成部分

    • 容器:如vectordequelist等,用于数据存储。
    • 算法:如sortfind等,提供常用操作。
    • 迭代器:定义了对容器操作的通用接口。
    • 其他工具:如mapsetqueue等,支持更复杂的需求。

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

    微软基础类库(MFC)

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

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

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

    跨平台编译器(Cross Compiler)

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

    跨平台编译器的应用场景

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

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

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

    你可能感兴趣的文章
    PoolingHttpClientConnectionManager原理剖析
    查看>>
    QT教程1:ubuntu18.04安装QT5
    查看>>
    POP-一个点击带有放大还原的动画效果
    查看>>
    POP3 协议在计算机网络中的优缺点
    查看>>
    qt批量操作同类型控件
    查看>>
    Portaudio笔记-WASAPI
    查看>>
    position:fixed失效情况
    查看>>
    Qt开发笔记:QGLWidget、QOpenGLWidget详解及区别
    查看>>
    Position属性四个值:static、fixed、absolute和relative的区别和用法
    查看>>
    POSIX thread编程中关于临界区内条件变量的分析
    查看>>
    POSIX与程序可移植性
    查看>>
    posix多线程有感--自旋锁
    查看>>
    SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
    查看>>
    POSIX标准和XSI扩展
    查看>>
    post install error,please remove node_moules before retry
    查看>>
    postcss-pxtorem 参数之selectorBlackList、exclude的用法
    查看>>
    Postek博思得标签打印机更换电脑,打印出来标签空白
    查看>>
    postfix+ dovecot搭建邮件服务器
    查看>>
    postfix在邮件服务器中的使用
    查看>>
    PostGIS 3.1.2软件安装详细教程(地图工具篇.8)
    查看>>