博客
关于我
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/

    你可能感兴趣的文章
    PHP内核介绍及扩展开发指南—基础知识
    查看>>
    php内核基础说明
    查看>>
    PHP写日志fwrite和file_put_contents的区别与性能
    查看>>
    PHP写计划任务
    查看>>
    PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
    查看>>
    PHP函数
    查看>>
    React input defaultValue不会更新状态怎么办?
    查看>>
    PHP函数__autoload失效原因(与smarty有关)
    查看>>
    PHP函数判断移动端和PC端
    查看>>
    Springboot基础入门
    查看>>
    php函数性能优化中应注意哪些问题?
    查看>>
    PHP函数操作数字和汉字互转(100以内)
    查看>>
    PHP函数方法
    查看>>
    PHP创建目录mkdir无写入权限的问题解决方案
    查看>>
    PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
    查看>>
    php删除文件夹下面所有文件包括(删除文件夹)不删除文件夹
    查看>>
    React Collapse Pane 项目教程
    查看>>
    php判断ip黑名单程序代码
    查看>>
    php判断复选框是否被选中的方法
    查看>>
    PHP判断指定目录下是否存在文件
    查看>>