| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 762 人关注过本帖
标题:关于C语言库的一些问题,高手交流
只看楼主 加入收藏
ak1773
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-22
收藏
得分:0 
回复 10楼 voidx
我感觉应该分,但也不确定,我想是16位代码它的参数的长度,跳转的范围不一样,如果32位编译器编译的话会产生错误
2011-04-22 21:22
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
这个,内核肯定是面对特定硬件平台的,基于其上的库绝大部分是面对内核的中断吧,这么深入的东西我也不是很清楚啦
2011-04-22 21:23
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 11楼 ak1773
不会吧,除非你在代码里明确写出你要跳转的地址
不然编译器会替你作适当的安排。
当然啦,编译器内建的数据类型的长度是必须要考虑的

[ 本帖最后由 voidx 于 2011-4-22 21:26 编辑 ]
2011-04-22 21:24
ak1773
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-22
收藏
得分:0 
回复 12楼 voidx
但我想,最后都是目标代码,应该是机器指令,也不知道到底是怎么回事
2011-04-22 21:27
ak1773
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-4-22
收藏
得分:0 
回复 12楼 voidx
谢谢,关于操作系统这一点我想通了,是你说的对,跟内核所设的中断有关系
2011-04-22 21:35
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
不同的系统对硬件做了不同的抽象。因此实现的机制也有非常大的区别。
系统拥有硬件的控制权,其它人在通过系统调用时,会接受系统的审查。库也是高层的东西,底层是信赖系统的。所以在一般的意义下根本没法移植。

抽象的讲移植,其实讲的是移植接口。目的基本上是使得在不同的系统下,有一个同名的函数有同样的功能。这样,应用程序就可以忽略环境而使用那个函数。
技术上讲,基本是在不同系统下实现同名函数,使之拥有指定的功能。


实践指出,移植软件的唯一方法是移植系统。
只不过这个唯一正确的出路,往往受到很大的阻力(想想很容易明白,因为公司开发软件并不是为了开发出真正好的软件,而是开发出真正赚钱的软件)。
POSIX 标准试图给出一个可移植系统的全部接口。并在一定程度上取得了一定的成就。


以上也是个人愚见。
收到的鲜花
  • voidx2011-04-23 00:40 送鲜花  10朵   附言:好文章
2011-04-23 00:30
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:5 
c或C++标准除了语言本身以外也都定义了支持库/运行库, 具体库的实现由编译器来实现。 也就是 标准提供了标准 编译器提供了实现, 语言的支持库/运行库是跟硬件和系统无关的,只跟编译器有关。

另外常讲的API则是操作系统提供的编程接口,这些是跟操作系统相关的 而操作系统则是硬件相关的。
这两种是在层次上不同的库。

单讲C的库的移植似乎不太合适,标准不牵扯具体的实现,一般是平台及硬件无关的。


小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2011-04-23 01:36
快速回复:关于C语言库的一些问题,高手交流
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018583 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved