Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 673|回复: 0

[默认分类] C++和C在linux下编程和与在WINDOWS下有什么区别

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-8 18:09:47 | 显示全部楼层 |阅读模式

       
                                                    C++和C在linux下编程和与在WINDOWS下有什么区别
    [ 标签:c++ 编程,c++,linux ] 说下C的函数库 有什么区别就行了。
    C++是不是没区别?
    函数库的区别linux下的C函数库和windows下的函数库系统调用的机制不一样Glibc包含了主要的C库。
    这个库提供了基本例程,用于分配内存、搜索目录、打开关闭文件、读写文件、字串处理、模式匹配
    、数学计算等等。所说的机制不一样不单是指中断号的问题,中断号也是通过input参数和output把函
    数地址和输出地址定位在寄存器的,那些函数在windows和linux下的实现应该是不一样的,就拿文件系
    统来说,ext3和fat32的怎么可能一样.还有mm内存管理,都是不一样的.中断还是属于硬件层的,X86上的
    应该都差不多,但操作系统层的实现就大不相同了.其他区别:1。系统平台不一样         
    底层开发就涉及到了系统内核的问题,对于linux来说,你可以知道它里面是什么结构,
    而windows。。。             2。编译器环境不一样         linux采用gcc编译器,
    gdb调试工具,和多种可视化的编辑器如   emacs,kedit等等,也有文本的vi/vim,GDB的功能是非
    常强大的,个人认为较win下的好         尽管win下地mingw,devcpp集成了gcc,但是搞的总让人
    不爽~,gcc对标准的支持是相当的好         3。针对人群不一样         win下主要还是面向商
    业化的开发,而绝大多数的编程爱好者则喜欢属于自己开阔自由的系统下编程,不愿意禁锢在windows下
    (MS)的包围中   4。发展方向不一样。         OpenSource的思想已经在linux这片净土开花
    参见GPL....。找资料方便,源代码公开,可以体验开发的乐趣         win下,ms逐步把一批开发人
    员束缚在它自己的系统里面,开发环境越来越傻瓜,这能不能叫人性化呢?搞到最后。。。可能越走越
    远~   5。版权问题         win下的好多好多东西都涉及到版权问题,linux的free软件虽然是开放
    软件,不过好多好多都是免费用于商业化的。。。当然有的需要开发源代码,好多也不需要~C++的区别
    也差不多
    Linux 简单的说跟 Windows 一样是一种操作系统,只是两者之间的使用方法和习惯有所区别。具体的区别其实很大,不过已经不是能在这里说清楚的事情了。
    对于 C 编程来说,他们最大的区别就是提供给你的系统相关的特性不一样。这个导致了所谓的移植性问题以及平台特性的问题。形象点的比喻是你可以认为 Linux 和 Windows 都是人。他们都懂一部分英语,但是一个的母语是汉语,一个是德语。你用的英语如果他们刚好都懂,那他们就能很好的帮你做事。如果你说的英语他们不懂,那就只能用他们的母语给他们说。这样的结果就是你用德语说的 Linux 听不懂;你用汉语说的 Windows 又听不懂。所以,如果是简单的编程,那他们没有多大区别。如果是复杂的...你就准备翻译一方的母语成另一方的母语吧。
    由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口。
    库函数是人家写的程序,你拿来用在你的程序里.
    首先标准只是规定了这些函数的接口和具体的运行效率的要求,这些函数具体是怎么写得要看各个编译器的实现和平台。
    如果你用的是visual studio的话,微软提供了一部分C运行时(CRT)的源码,里面会有memcpy,strcpy之类的函数的实现,我的visual studio 2005下的路径是C:\Program Files\Microsoft Visual Studio 8\VC\crt\src,你可以对比参照一下。
    求教 C语言的数学库函数与标准库函数 有什么不同?
    C语言的标准变化了好几次,现在说的标准C语言指的是99年制定的C99标准。其中定义的函数库就是C语言标准函数库。具体有哪些你可以查询《C语言参考手册(C:A Reference Manual,Fifth Edition》。
    但事实上,每个C/C++编译器都带有自身的函数库,一般都兼容C标准函数库,但也有个别的有些细节上的出入。所以,一般你只要考察你所用编译器的函数库就行了(通常都可以从帮助中得到)。
    数学函数是标准库函数的一种
    标准库函数优先使用了,可实现平台无关.
    应用程序接口API函数是平台相关的
    编译器函数是指MFC/VCL之类的类库函数吧,打包成程序后必须带上函数库
    标准库函数是由一个语言的标准来决定的
    API函数是由操作系统提供的
    标准库函数大多数时候也要通过调用api函数来达到目的
    但是自己用的时候,我觉得还是能调用标准库函数实现这样就最好
    这样移植性好得多
    标准库函数自然是优先了.标准库可实现与平台无关.
    如果用到系统编程的话,使用API,但是一般的IDE都会对API有封装,比如mfc,所以使用mfc更方便些
    当然有些时候直接用API解决某些问题也是很方便的.
    编译器函数?如果指mfc之类的,就是上面我说的,
    否则如果你用的C++的话,一般的编译器都有实现标准库.直接使用标准库就行.
    还有一些其他的流行的库也可以,
    C++的准标准库boost,可以参考www.boost.org
    linux下的qt,是个GUI库,类似windows下的mfc,但是是用标c++实现的.
    标准库函数:是一种程序规范,提供一套标准的函数,可能有好几种规范,如c99,标准c
    编译器函数:是用来告诉编译器怎么编译你的程序的,如#define,#typedef
    API函数:操作系统提供,的函数用来支持这个平台上的操作的,如MFC
    标准库是一种规范和标准可以非常方便的跨平台
    编译器函数一般是编译器的类库提供的
    API一般由操作系统来提供
    后两者都有一定的局限性
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-21 03:31 , Processed in 0.363446 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表