一.库文件:

1).
        库是一组预先编译好的函数的集合,这些函数都是按照可重用的原则编写的.它们通常由一组相互关联的函数组成以执行某项常见的任务.
        库文件的名字总是以`lib `开头,随后的部分指明这是什么库,文件名的最后部分以` . `开始,然后给出库文件的类型:
□ .a    代表传统的静态函数库;
□ .so  代表共享函数库

2.)
静态库:
       函数库最简单的形式是一组处于 "准备好使用" 状态的目标文件.当程序需要使用函数库中的某个函数时,它包含一个声明该函数的头文件. 编译器 和 链接器 负责将程序代码和函数库结合在一起以组成一个单独的可执行文件.
       当同时运行许多应用程序并且它们都使用来自同一个函数库的函数时,内存中就会有同一个函数的多份副本,而且在程序文件自身中也有多份同样的副本.(这将消耗大量宝贵的内存和磁盘空间)

共享库:
       当一个程序使用共享库时,程序本身不再包含函数代码,而是引用运行时可访问的共享代码.当编译好的程序被装载到内存中执行时,函数引用被解析并产生对共享库的调用,如果有必要,共享库才被加载到内存中. 
       通过这种方法,系统可以只保留共享库的一份副本供许多应用程序同时使用,并且在磁盘上也仅保存一份.
       共享库在许多方面类似于Windows中使用的动态链接库.`.so`库对应于`.DLL`文件,它们都是在程序运行时加载,而`.a`库类似于`.LIB`文件,它们都包含在可执行程序中.

二.变量:

静态变量: 静态变量是指存储在静态区的变量,这些变量从定义开始就占用着内存,知道程序结束,因此它的内存地址是固定不变的.
        相对于动态变量,即存放在堆中和栈中的变量,它们占用的内存都是动态申请的,因此内存地址不是固定不变的,而是动态改变的
        静态变量分为静态局部变量静态全局变量两种; 静态变量可以在局部定义,这样的变量叫做静态局部变量;
        静态局部变量和局部变量的区别是:
        局部变量不会一直占着内存,当函数结束时,局部变量所占用的内存就会被释放,但是静态局部变量会一直占着内存,直到程序结束.
       因此当函数调用结束后,局部变量的值有可能被其他值所覆盖,而静态局部变量的值仍然保存着,并作为下次调用该函数时该静态局部变量的初始化值.

静态全局变量: 静态变量可以在全局定义,这样的变量叫做静态全局变量,假如不给静态全局变量赋一个初值,那么编译时自动赋初值为0.
        将静态全局变量的关键字static去掉,就是全局变量,全局变量的作用域是整个工程,在工程的一个文件内定义的全局变量,在该工程的另一个文件中,通过extern声明,就可以使用全局变量.

注意:全局变量与静态全局变量的存储区相同,都是存储在静态区.

Linux:程序设计相关推荐

  1. linux程序设计---序

    近段时间,一直在学习<Linux程序设计(第三版)>这本书.书中的知识点(个人认为是知识点)记作笔记,方便以后复习使用. 实验环境为:Ubuntu11.04 或者Ubuntu12.04,两 ...

  2. Linux程序设计实验项目六,《linux程序设计》实验教学大纲

    <linux程序设计>实验教学大纲 课程名称:Linux程序设计 课程编号:408412420408436407 适用专业:计算机科学与技术网络工程软件工程 总 学 分:3 总 学 时:4 ...

  3. linux程序设计项目报告,Linux程序设计实验报告大作业

    Linux程序设计实验报告大作业 实 验 报 告 课程名称: LINUX程序设计 学 院: 计算机学院 专 业: 软件工程 班 级: 14-3 姓 名: 张正锟 学 号: 201401061038 2 ...

  4. linux系统程序问题报告,Linux程序设计实验报告.docx

    Linux程序设计实验报告.docx Linux程序设计实验指导书实验类别课内实验 实验课程名称Linux程序设计实验室名称软件工程专业实验室 实验课程编号 000 总 学 时32 学 分 2 适用专 ...

  5. 读书笔记之:Linux程序设计(第4版)(ch1-7) [ 学如逆水行舟,不进则退 ]

    <Linux 程序设计>是一本非常好的书,内容很全面,并且对于给出的例子都进行了详细的讲解.并且是通过一个的小型的项目的来讲解的:开始是使用shell进行编程实现,然后逐步进行改进,使用C ...

  6. [Linux] 读书笔记之:Linux程序设计(第4版)(ch1-7) [ 学如逆水行舟,不进则退 ]...

    <Linux 程序设计>是一本非常好的书,内容很全面,并且对于给出的例子都进行了详细的讲解.并且是通过一个的小型的项目的来讲解的:开始是使用shell进行编程实现,然后逐步进行改进,使用C ...

  7. Linux程序设计(第4版)

    查看书籍详细信息: Linux程序设计(第4版) 编辑推荐 最负盛名的Linux程序设计图书 内容全面深入 全球开源社区集体智慧结晶 内容简介 本书讲述了Linux系统及其他UNIX风格的操作系统上的 ...

  8. 读书笔记-Linux程序设计

    文章目录 Linux程序设计 一.入门 二.shell程序设计 三.文件操作 四.linux环境 五.终端 六.使用curses函数库管理基于文本的屏幕 七.数据管理 CSDN 八.MySQL 九.开 ...

  9. Linux程序设计—多进程编程

    文章目录 1.进程 1.1.创建进程 1.1.1.fork() 1.1.2.vfork() 1.2.执行进程--exec函数族 1.3.进程退出 1.3.1.exit()和_exit() 1.4.进程 ...

  10. 浙江大学Linux程序设计报告,浙江大学Linux程序设计实验报告材料.doc

    实用文档 文案大全 Linux程序设计实验报告1 --操作系统基本命令使用 一.实验目的 1.通过对Emacs.vi.vim.gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法: 2 ...

最新文章

  1. C# winform bin文件夹、obj文件夹、Properties文件夹下分别存放什么文件?
  2. android app 主界面,android ViewPager实现App主界面Tab菜单页面切换和点击事件
  3. Mac下卸载Idea
  4. 关于打开sdk下载不了的最优秀解决方式
  5. java代码获取数据源_tomcat中获取不同的数据源java代码
  6. 软件著作权申请流程及模板
  7. 支撑起SNS的六度分隔理论和150法则
  8. 深信服Python笔试
  9. mpeg1,mpeg2,mpeg4
  10. 【Unity3D】枪战游戏—弹孔设置
  11. 实验室装水的容器叫什么_实验室常见的水的种类
  12. Gantt(甘特图)与PERT(项目计划评审技术)图各自的缺陷
  13. Faster R-CNN论文翻译笔记
  14. OS X EI Captan 中Rootless
  15. ES数据架构与关系数据库Mysql对比,例如mysql库对应es索引
  16. mysql密码参数_MySQL 密码参数配置与修改 validate_password
  17. ViewGroup源码解读
  18. FTP:文件传输协议
  19. Unity ECS(四)ECS组成概念
  20. RacerX Effective, Static Detection of Race Conditions and Deadlocks调研笔记

热门文章

  1. 表情识别(六)--局部特征学习和Handcrafted特征结合
  2. python虚拟环境搭建mac_在MAC上安装Python虚拟环境
  3. linux运行程序开启了opencl,错误:运行OpenCL代码时,clGetPlatformIDs -1001(Linux)
  4. 枫之谷m平板玩服务器维护,枫之谷 M无法连接服务器是什么原因
  5. Linux开发_生成executable (application/x-executable)可执行程序
  6. Linux_快速查找文件
  7. for each,for in,for of三者区别
  8. java源码-AtomicInteger
  9. [Tailwind] Control What Variations are Generated for Each Utility Class Module in Tailwind
  10. 第三个Sprint冲刺第十天