linux cpp标准库,标准库以及标准头文件

源文件通过编译可以生成目标文件(例如 GCC 下的 .o 和 Visual Studio 下的 .obj),并提供一个头文件向外暴露接口,除了保护版权,还可以将散乱的文件打包,便于发布和使用。

实际上我们一般不直接向用户提供目标文件,而是将多个相关的目标文件打包成一个静态链接库(Static Link Library),例如 Linux 下的 .a 和 Windows 下的 .lib。

打包静态库的过程很容易理解,就是将多个目标文件捆绑在一起形成一个新的文件,然后再加上一些索引,方便链接器找到,这和压缩文件的过程非常类似。

C语言在发布的时候已经将标准库打包到了静态库,并提供了相应的头文件,例如 stdio.h、stdlib.h、string.h 等。

Linux 一般将静态库和头文件放在`/lib`和`/user/lib`目录下,C语言标准库的名字是`libc.a`,大家可以通过`locate`命令来查找它的路径:

~~~

$ locate libc.a

/usr/lib/x86_64-redhat-linux6E/lib64/libc.a

$ locate stdio.h

/usr/include/stdio.h

/usr/include/bits/stdio.h

/usr/include/c++/4.8.2/tr1/stdio.h

/usr/lib/x86_64-redhat-linux6E/include/stdio.h

/usr/lib/x86_64-redhat-linux6E/include/bits/stdio.h

~~~

在 Windows 下,标准库由 IDE 携带,如果你使用的是 Visual Studio,那么在安装目录下的`\VC\include`文件夹中会看到很多头文件,包括我们常用的 stdio.h、stdlib.h 等;在`\VC\lib`文件夹中有很多 .lib 文件,这就是链接器要用到的静态库。

大家也可以在当前工程的属性面板(在工程名处单击鼠标右键选择“属性”)中查看路径:

![](https://box.kancloud.cn/d0cf5587297e75e57f45a4e17c8b0a29_722x265.png)

ANSI C 标准共定义了 15 个头文件,称为“C标准库”,所有的编译器都必须支持,如何正确并熟练的使用这些标准库,可以反映出一个程序员的水平:

![](https://box.kancloud.cn/d3cc94499a6da958bd929babd5f50d36_642x75.png)

除了C标准库,编译器一般也会附带自己的库,以增加功能,方便用户开发,争夺市场份额。这些库中的每一个函数都在对应的头文件中声明,可以通过 #include 预处理命令导入,编译时会被合并到当前文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

inputstreamreader未关闭会导致oom_ThreadLocal 一定会导致内存泄露?

在面试的时候,ThreadLocal作为高并发常用工具经常会被问到。而面试官比较喜欢问的问题有以下两个:1、ThreadLocal是怎么实现来保证每个线程的变量副本的。2、ThreadLocal的内存泄露是怎么产生的,怎么避免内存泄露。首先我们来看第一个问题&am…

字符串的格式化

字符串作为一种常见的数据类型,也有其不同之处,其中最特别的当属字符串的格式化。 对于“格式化”估计很多的人有点懵,先来看一个例子。 >>> price of eggs: $%d % 3.5 字符串 price of eggs: $3 被格式化后的结果…

学生实验平台搭建c语言程序,c语言程序设计实验学生用.doc

c语言程序设计实验学生用C语言程序设计实验指导(学生用)计算机基础教研室《C语言程序设计》课程组2012年9月前 言《C语言程序设计》是计算机科学技术系面向全校理工科开设地一门专业平台课程.通过这门课程地学习,可以让学生了解程序设计地思想和方法,掌握高级语言程序设计地基本…

keras保存模型_TF2 8.模型保存与加载

举个例子:先训练出一个模型import 接下来第一种方法:只保留模型的参数:这个有2种方法:model.save_weights("adasd.h5")model.load_weights("adasd.h5") model.predict(x_test)model.save_weights(./checkpoin…

第一章 Burp Suite 安装和环境配置

Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。在渗透测试中,我们使用Burp Suite将使得测试工作变得更加容易和方便,即使在不需要娴熟的技巧的情…

mysql57服务无法启动_将mysqld.service服务加入到systemctl

在开始安装二进制MySQL的时候感觉都还挺好,就是在启动服务的时候比较麻烦,一开始是在Centos6下的感觉也没有什么费劲的;但是在Centos7下面还是有点不太适应,不过还好用用就熟悉了;说明一下,我的安装目录在/usr/local/m…

linux raid autodetect,软raid的建立

1 增加磁盘并分区(修改id)fdisk /dev/sdbCommand (m for help): pDisk /dev/sdb: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits cylinders of 16065 * 512 8225280 bytesDevice Boot Start End Blocks Id System/dev/sd…

input readonly 光标显示问题

input readonly模式下在ie跟火狐访问的时候会有光标会出现&#xff0c;以下方法可解决这个问题 <input type"text" readonly unselectableon onfocus"this.blur()"> 1.unselectableon 是解决ie下光标出现的问题 2.οnfοcus"this.blur() 是解决…

c语言for循环的省略写法,C语言两种for循环写法分析

每个C程序员都知道同一个for循环语句可以有两种写法:A: for (i 0; i B: for (i cnt; i > 0; i--){ }前几天,DEBUG的时候, 发现采用A写法的代码反汇编出来有BUG.当时没有时间记录,环境也没有保存下来.今天尝试重现,又没来出现上次的问题...很奇怪.很久很久以前也听说过这两…

python文字游戏 生成数字菜单_pygame游戏之旅 游戏中添加显示文字

本文为大家分享了pygame游戏之旅的第5篇&#xff0c;供大家参考&#xff0c;具体内容如下 在游戏中添加显示文字&#xff1a; 这里自己定义一个crash函数接口&#xff1a; def crash(): message_diaplay(You Crashed) 然后实现接口函数message_display(text) def message_diapl…

快速排序的改进

package com.txq.test; /*** quicksort,三方面改进&#xff1a;①三数中值选择枢纽元②容量小的时候使用插入排序③重复元素的处理* author XueQiang Tong* date 2017/10/25*/ public class QS {public void quicksort(int []arr,int low,int high){int first low;int last h…

23根火柴游戏 c语言,23 根火柴游戏

#includegt;int main(){int g 23;int k 3;int b, c;printf("这里是23 根火柴游戏&#xff01;&#xff01;\n");printf("注意&#xff1a;最大移动火柴数目为三根\n");do{printf("请输入移动的火柴数目&#xff1a;\n");scanf("%d",…

springboot netty给特定客户端推送_Spring Boot 又升级了?2.0 你搞懂了吗?!

【小宅按】作为知名互联网公司都在用的技术&#xff0c;Spring Boot 2.0 的更新引起了很大的关注&#xff0c;本文将分为三部分解读 2.0 的更新&#xff1a;第一类&#xff0c;基础环境升级&#xff1b;第二类&#xff0c;默认软件替换和优化&#xff1b;第三类&#xff0c;新技…

OSI七层模型与TCP/IP五层模型详解

博主是搞是个FPGA的&#xff0c;一直没有真正的研究过以太网相关的技术&#xff0c;现在终于能静下心学习一下&#xff0c;希望自己能更深入的掌握这项最基本的通信接口技术。下面就开始搞了。 一、OSI参考模型 今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。…

c是过程化语言吗数据库,关于SQL错误的是()A、所有数据库的公共语言B、非过程化的C、统一的语言D、所有用SQL缩写的程序都...

关于SQL错误的是()A、所有数据库的公共语言B、非过程化的C、统一的语言D、所有用SQL缩写的程序都更多相关问题[多选] 在彩色电视机遥控系统中&#xff0c;属于模拟量控制的有()等几种。[多选] 在色度信号记录处理中&#xff0c;家用录像机一般都要对色度信号经过()等处理。[多选…

python建立数据库和基本表_python基础 — 链接 Mysql 创建 数据库和创表

重点&#xff1a; &#xff11;. 链接服务器的数据库 &#xff12;. 创建表和格式 &#xff13;. 插入多行数据 import pymysql try: hostxxx userxxx passwdxxx dbtest01 port3306 Table_namekaka5 # 链接到服务器 db pymysql.connect(host, user, passwd, db, port) # 创…

c语言陷阱试题,超级经典计算机二级C语言陷阱考试题.doc

超级经典计算机二级C语言陷阱考试题超级经典计算机二级C语言陷阱考试题若有定义&#xff1a;int a[2][3],则对a数组的第i行j列元素地址的正确引用为___d___.a)*(a[i]j) b)(ai) c)*(aj) d)a[i]j以下正确的程序段是_________.a)char str[20]; b)char *p;scanf("%s",&am…

python开发跟淘宝有关联微_Python_淘宝用户行为分析

一、数据导入与清洗 源数据量有1亿余条&#xff0c;为减轻计算量&#xff0c;抽样总量的20%用于计算分析 #codinggbk import numpy as py import pandas as pd import datetime import os os.chdir(D:/pythonlily/test1) datapd.read_csv(UserBehavior.csv,headerNone) data.co…

android 自定义表情包,android基于环信的聊天和表情自定义

环信sdk的导入自定义聊天界面此处只有静态图&#xff0c;请谅解。自定义表情发送自定义聊天界面简单说下自定义的聊天界面&#xff0c;一个带有recyclerview和的xml文件&#xff0c;和对应的adapter即可。recyclerview为展示聊天信息。通过EMClient.getInstance().chatManager(…

如何快速获取properties中的配置属性值

本文为博主原创&#xff0c;未经博主允许&#xff0c;不得转载&#xff1a; 在项目中&#xff0c;经常需要将一些配置的常量信息放到properties文件中&#xff0c;这样在项目的配置变动的时候&#xff0c;只需要修改配置文件中 对应的配置常量即可。 在项目应用中&#xff0c;如…