首页 > 编程语言 >2023-2024-1 20231423《计算机基础与程序设计》第十四周学习总结

2023-2024-1 20231423《计算机基础与程序设计》第十四周学习总结

时间:2023-12-31 22:37:23浏览次数:46  
标签:可执行文件 静态 2024 二进制 文本文件 2023 20231423 共享 链接

作业信息

这个作业属于哪个课程2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 2022-2023-1计算机基础与程序设计第十四周作业
这个作业的目标 《C语言程序设计》第十三章

《C语言程序设计》

二进制文件和文本文件

  • 二进制文件是一种字节序列,没有字符变换,其中的数据以二进制存储
  • 文本文件是一种字符序列,其中的数据以ASCII码存储
  • 教材学习中的问题和解决过程

    • 问题1:学习过静态库和共享库的概念后,想知道静态库和共享库有啥区别?

    • 问题1解决过程:上网搜寻相关资料后得知:静态库被程序静态链接于编译时,共享库被动态链接于运行时;
      静态链接时,需要把所有对静态库的引用内容都嵌入到最终的可执行文件中,且相同模块并不共用,都有相应的副本,因此相应的可执行文件在磁盘和内存中所占空间较大;而动态链接是发生在运行时的,并且是共享的,因此相应的可执行文件在磁盘中所占空间较小;
      由于静态链接是在编译时完成的,因此可执行文件中以及包含有所需的静态库,可执行文件可以单独运行;由于动态链接是在程序运行时完成的,可执行文件在加载入内存运行时才会链接共享库,因此可执行文件必需共享库的支持,不能单独运行;
      当静态库中某个模块更新后,需要重新编译链接生成相应的可执行文件;另一方面若共享库中某个模块更新了,只要接口没有改变,就不需要重新编译链接生成可执行文件;
      静态链接比动态链接速度稍快;
      静态库中不能包含共享库,而共享库中可以包含静态库。
      综合以上区别,可以发现动态链接的性能是明显优于静态链接的,但是这不一定就说明静态链接一定比不上动态链接了。如果库本身就比较小且不经常改变,基于速度的角度,应当选择静态链接,否则还是应当选择动态链接,由于是大型软件需要经常维护、扩展之类的情况。除此之外,静态链接的一个显著优点是其相应的可执行文件已经是完整的,包含所有所需的模块,因此可以很方便地移动到其他地方执行。

    • 问题2:学习过静态库和共享库的概念后,想知道静态库和共享库各自有什么优点和缺点?

    • 问题2解决过程:上网搜寻相关资料后得知:静态库与动态库优缺点:
      由于由静态库生成的可执行文件是把静态库加载到了其内部, 所以静态库生成的可执行文件一般会比动态库大。

    静态库

    优点:

    执行速度快, 是因为静态库已经编译到可执行文件内部了

    移植方便, 不依赖域其他的库文件

    缺点:

    耗费内存, 是由于每一个静态库的可执行程序都会加载一次
    部署更新麻烦, 因为静态库修改以后所有的调用到这个静态库的可执行文件都需要重新编译
    动态库

    优点:

    节省内存
    部署升级更新方便, 只需替换动态库即可, 然后再重启服务
    缺点:

    加载速度比静态库慢
    移植性差, 需要把所有用到的动态库都移植

    • 问题3:二进制文件和文本文件各有什么优缺点?
    • 问题3解决过程:上网搜寻相关资料后得知:文本文件与二进制文件的优缺点

    因为文本文件与二进制文件的区别仅仅是编码上不同,所以他们的优缺点就是编码的优缺点,这个找本编码的书来看看就比较清楚了。一般认为,文本文件编码基于字符定长,译码容易些;二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些(不同的二进制文件格式,有不同的译码方式)。关于空间利用率,想想看,二进制文件甚至可以用一个比特来代表一个意思(位操作),而文本文件任何一个意思至少是一个字符。

    在windows下,文本文件不一定是一ASCII来存贮的,因为ASCII码只能表示128的标识,你打开一个txt文档,然后另存为,有个选项是编码,可以选择存贮格式,一般来说UTF-8编码格式兼容性要好一些.而二进制用的计算机原始语言,不存贮兼容性. 很多书上还认为,文本文件的可读性要好些,存储要花费转换时间(读写要编译码),而二进制文件可读性差,存储不存在转换时间(读写不要编解码,直接写值).这里的可读性是从软件使用者角度来说的,因为我们用通用的记事本工具就几乎可以浏览所有文本文件,所以说文本文件可读性好;而读写一个具体的二进制文件需要一个具体的文件解码器,所以说二进制文件可读性差,比如读BMP文件,必须用读图软件。

    而这里的存储转换时间应该是从编程的角度来说的,因为有些操作系统如windows需要对回车换行符进行转换(将”\n”,换成”\r\n”,所以文件读写时,操作系统需要一个一个字符的检查当前字符是不是”\n”或”\r\n”).这个在存储转换在Linux操作系统中并不需要,当然,当在两个不同的操作系统上共享文件时,这种存储转换又可能出来。

    代码调试中的问题和解决过程

    • 问题1:在把娄老师发在云班课作业的图片里的代码打到电脑上并传到虚拟机上之后,系统对我的add,sub等四个自定义函数报错,同时对scanf和printf两个函数报错,显示implicit declaration。
    • 问题1解决过程:在C语言查找相关内容后了解到scanf和printf是stdio.h里的函数,要使用这些函数必须引用stdio.h,否则会报错,同时我也需要引用head.h头文件,否则add等四个自定义函数也无法使用。

标签:可执行文件,静态,2024,二进制,文本文件,2023,20231423,共享,链接
From: https://www.cnblogs.com/445521933yy/p/17938154

相关文章

  • P9753 [CSP-S 2023] 消消乐 题解
    这里是被说烂了的随机化线性做法。相信大家都已经做过QOJ6504,因此我们考虑采用类似的办法通过此题。我们对每个字符随机一个\(k\timesk\)的矩阵,并求出其矩阵的逆。然后,我们在偶数位放原矩阵,在奇数位放逆矩阵,这样,一段区间合法当且仅当这段区间的矩阵积为单位矩阵\(I\),原因......
  • 学期2023-2024-1 20231409 《计算机基础与程序设计》第十四周学习总结
    学期2023-2024-120231409《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标《C语言程序设计》第13章并完成云班课测试作......
  • 2023-2024-1 20231413 《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231413《计算机基础与程序设计》第十四周学习总结1.作业信息班级:2023-2024-1-计算机基础与程序设计作业要求:2023-2024-1《计算机基础与程序设计》教学进程目标:自学教材:《C语言程序设计》第14章并完成云班课测试作业正文:https://www.cnblogs.com/Kaifazheju......
  • 2023-2024-1 20231410《计算机基础与程序设计》第14周学习总结
    2023-2024-120231410《计算机基础与程序设计》第14周学习总结作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13)这个作业的目标自学教材《C语言程......
  • 2023-2024-1 20231309 《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231309《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标自学教材《C语言程序设计》第13章并完成云班课测......
  • HL 迷惑行为大赏(2023 CSP-S)
    HL迷惑行为大赏(哈尔滨考点)请注意,下面的****均非原始代码,而是因为不可抗力因素略去了。空文件大赏T1不写人============./HL-S00002/lock/lock.cpp=====================Nodatafound.============./HL-S00007/lock/lock.cpp=====================Nodatafound.......
  • 2023.12.31——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.ERP明日计划:学习......
  • 2023-12-31 21:00:00 告别2023
    很久没有更新博客了,在2023年的最后一天,有点仪式感,写个小短文吧。可以说今年上半年,还是花了很多心思在学习上,博客里两三天一更的进度也能体现出来用心。花了这些时间、精力,自认为还是学到了一些技术、知识,以前看书本、视频里不懂的东西,也越来越清晰。沉浸在知识海洋里的充实而满......
  • 2023
    都写总结啊,我也写写吧。emmmmm......其实这一年挺魔幻的。原本看自己的平常成绩那么差,原本以为留不到省选的,但没想到阴差阳错刚好发挥好了。刚好就留下来了。现在回到机房总觉得朋友们还没走,但是回应我却是寥寥的几个人影。我翻了翻之前的2月做的题目,是\(tarjan\)的转眼间就......
  • 2023-12-31
    packagecom.example.backendmanage.controller;importcom.example.backendmanage.common.AjaxResult;importcom.example.backendmanage.info.Menu;importcom.example.backendmanage.info.MenuRole;importcom.example.backendmanage.mapper.MenuMapper;importorg.springf......