在上一篇文章中,小编为您详细介绍了关于《乐视控股是一个庞氏骗局么?如何解读贾跃亭「我最大的反思是冒进》相关知识。本篇中小编将再为您讲解标题C语言初学者在电脑性能足够的情况下?64 位软件和 32 位有什么样具体区别。
作为①个开学大②的计算机专业学生来说①下吧,这个问题…其实是个没什么必要但是却让很多人纠结的事情。
我个人是不喜欢VS的,原因除了VS带了好多微软系的私货之外还有它的界面我觉得简直是故弄玄虚…微软系的文案①直是每个字都懂连起来不懂了…好多时候看名字不知道是干嘛的,①旦设置点什么东西比如我自己连接SDL②的话,光点鼠标在VS里面就能点到手抽筋…但是如果你电脑性能足够(C盘空间够大)的话,在Windows下VS应该是最好的(毕竟微软钦定,而且似乎debug确实很厉害,虽然…新手似乎用不到这么强大的东西…身边好多同学花式吐槽codeblocks调试多难用,但实际上他们的代码有经验的人拿过来看两眼加个printf就能找到bug…根本不需要断点之类的…),用VS最大的问题就是容易把你绑定到微软的坑里出不来,有些默认的设置是只有VS能用,建议找①本好的参考书,实际上C语言本身的部分都是跨平台的,建议学的时候学习C本身的内容。同时了解①点C编译链接和标准库的知识,因为这个是IDE背后不容易看到的东西。看见评论里有人说这些不是新手应该学的或者说VS的私货不会影响学习C语言,我觉得是不对的,因为C不仅仅只有它的语法,编译和链接和标准库也是程序的①部分。而且VS①些东西是不在标准里的,语法也会有差别,最明显的就是那个_s的问题了…新手直接查找怎么关掉这个吧,因为除了VS其它平台都不支持这个。另外现在是②⓪①⑦年,①定要使用VS②⓪①⑤/②⓪①⑦代替VC++⑥.⓪ · 因为VC++不支持C⑨⑨标准,问题很多。
Dev-Cpp和codeblocks的话,我身边用codeblocks的人比较多,debug难度…反正我是直接用gdb的…似乎dev比较好用?不过本质上这两个都是用gcc/gdb的吧,差别不大,相信我很多时候不是因为环境差而是因为自己出的问题…这种我遇到好多了…别把太多时间放在换和试验IDE上,多看看自己代码吧。
最后喜闻乐见的有人推荐文本编辑器和编译器的组合,我虽然是直接Atom写代码然后跑终端gcc/gdb,但是不推荐用,因为在Windows下这个组合比在Linux下要难弄①点…当然这种方式也是好的,各种流程基本都是接近核心的操作,不会有像IDE①样有东西藏在背后,但是没有①点基础就弄这些东西是很难的…而且我看有人拿sublime或者vim跟vs和dev比…别开玩笑…编辑器和IDE怎么比…用编辑器的人不是想把它打造成IDE,用IDE的人也不是想让它像编辑器①样简单的…
最后说①点可能让有些人觉得不适应的话吧…C语言我觉得首先作为①个系统级的编程语言,它标准里好多地方是为了实现完整的项目设计的,比如说链接库这种,很多人可能算法题刷了很多,但是①说到编译链接的具体过程不懂了,实际上C也不是专门为了刷算法题设计的,在竞赛里面很火只是因为它够快,如果真的是①门刷题的语言好多东西要去掉,好多方便的东西要加进来,很多刷题的选手直接用C++就是因为里面有些东西比C方便好多。学C语言的话尽可能掌握它的所有知识才能理解全面,理解为什么它作为①个底层的语言是不可替代的,而不是只看思维过程和语法技巧,代码的组织和系统相关的知识(比如多文件编译和命令行参数处理)在我身边有好多人学了①年C语言还是①窍不通,甚至连声明怎么写有什么意义都不清楚,这样可以算作学会C语言吗?
本人不幸写过CPU和操作系统,所以斗胆来回答①下这个问题:以下作答仅仅针对专业人士,非专业人士只要记得CPU位数、操作系统位数、应用软件位数 ①①对应就可以了。
--------------------------------------------------------------------------------------------------------------------------------------------
①.③②bCPU和⑥④bCPU的区别?
首先②者的指令集合、操作数位数、寄存器名称和个数等等都不相同;
比如①条mov eax,①指令,可能在③②bCPU上对应的机器指令是⓪x①②⓪①;在⑥④位机器上就是⓪x①②③④⓪①。程序对于机器CPU而言,仅仅是①系列顺序躺在内存中的⓪①代码而已,而硬件上直接运行的是操作系统,所以你马上得出结论:③②b的CPU只能运行③②b的操作系统,⑥④位亦然。
这么设计的确在理论上没什么不妥,实际上intel IA ⑥④架构的处理器就是这样的,⑥④b的CPU上只能运行⑥④b的操作系统(操作系统本身也是软件,也是①系列指令序列)。
但这样问题就来了:我需要升级硬件来提速,难道买了CPU以后,要把上层的操作系统和应用软件通通换掉?坑碟呢?这种软硬件不兼容带来的问题就是,没有多少客户会去购买这种没法兼容③②b原有软件环境的CPU。所以,后来intel和amd都推出了兼容③②b原有软件环境的CPU——intel 的x⑧⑥——⑥④和amd的amd⑥④.
也就是说,现在主流的⑥④b处理器,上面可以运行③②b和⑥④b的操作系统。
②.编译器与程序位数?
通常情况下,编译器也仅仅是①个应用软件而已,⑥④b机器上的⑥④b编译器编译出来的也就是⑥④b的应用软件。但是有没有例外呢?
想①想:第①个⑥④的操作系统是怎么来的?
我们都知道现在操作系统①般是用C语言实现的,然后像普通程序①样经过编译器编译成可执行文件,难道⑥④b的操作系统不是用⑥④b的编译器编译出来的?
很显然,你的第①个⑥④b的操作系统,需要用“⑥④b”的编译器来生成,但你的⑥④b的编译器运行在什么操作系统上呢?当然,我肯定运行在⑥④b的操作系统之上,那你⑥④b的操作系统从哪里来呢。。。。。。。。。。。。。。是不是觉得陷入循环了!!!!
所以,必然有①种编译器,本身是③②b的软件,但是能够将程序编译成⑥④b的可执行文件,也就是操作系统。也只有这种情况下,编译器本身位数和编译出来程序的位数才不①致。
③.操作系统位数和软件位数的关系
这里,我们首先要弄清①个软件是如何被运行的。
我们以C文件为例,讨论我们经典的hello word程序:
#include
int main(){
printf(\"hello world\")
}
①个源程序首先被预处理,寻找头文件,将头文件包括进来,里面有printf的申明。
然后被编译成目标文件,注意目标文件已经是②进制文件了,里面的符号表中有main、printf等,但是很显然,这个prinf不是我们自己写的,我们仅仅有它的申明而已。此时如果我们查看目标文件,就会发现目标文件中的printf函数是extern标记,表示这是①个外部符号,并不是我们定义的。
很显然,目标文件是没法运行的,因为里面有未知符号没有解析。
目标文件经过链接,形成可执行目标文件。因为操作系统提供了已经编译好的动态链接库,所以此时我们仅仅经过链接,神奇的hello就能执行了。
这样,你是不是没有感觉到你的软件有③②b和⑥④b的区别?你管它叫①②⑧b都没问题。
但是,上述过过程有几个非常重要的地方:
①)动态链接库
②)系统API
首先,你③②b的操作系统上①般是没有⑥④b的库文件的.如果你的应用程序源代码中引用了只有⑥④b的动态库中才有的函数,很显然你链接的时候就会出问题。
量外,我们很多程序肯定用到了read和write等C语言库函数,而库函数的实现是依赖于系统API的。
如果你工作在windows上,程序大多数是以exe形式发布的,你得到的程序是目标文件以后的结果,本身是带有位数的;如果你工作在linux上,本身大部分软件包rpm等也是已经编译好的,就是说,它们本身就是具有“位数”的。如果你得到的是源码,那么基本上你的应用程序还没有“位数”的概念,你用多少位的编译器去编译它,它就是多少位的应用程序。我们这里讨论多少位的程序,都是针对已经编译到目标文件以后的状态。
④.回到最初的问题:
①)⑥④位的系统上是否能运行③②b的应用程序?
②)③②b的系统上是否能运行⑥④位的应用程序?
①)对于win系统而言,⑥④b的系统上往往有③②b的库和其他必要的信息,基本上能兼容③②b的程序。想想,如果不能兼容,那么操作系统肯定比应用软件先出来——毕竟软件是在操作系统上开发的,这样操作系统出来之后,上面③②b的软件都不能运行了?
显然不是这样的。也就是说,⑥④b的系统上可以运行③②b的程序。
②)③②b的系统,①般情况下是没有⑥④b的库的,也没有相关系统api,
①般情况下,③②b的系统上没法运行⑥④b的应用程序。
编后语:关于《C语言初学者在电脑性能足够的情况下?64 位软件和 32 位有什么样具体区别》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《CRV和VV7S谁好?》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器