免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: KBTiller
打印 上一主题 下一主题

特邀专家在线答疑——名不正则言不顺 一网打尽C语言基本概念 [复制链接]

论坛徽章:
0
241 [报告]
发表于 2011-05-24 13:05 |只看该作者
1 &&0=?

论坛徽章:
2
天蝎座
日期:2014-03-28 10:18:052015年亚洲杯之乌兹别克斯坦
日期:2015-02-10 11:32:25
242 [报告]
发表于 2011-05-25 09:27 |只看该作者
几天没来,帖子还是这么火啊{:3_187:}

论坛徽章:
0
243 [报告]
发表于 2011-05-25 12:45 |只看该作者
回复 242# txdgtwpv


    呵呵。全仗大家捧场

论坛徽章:
0
244 [报告]
发表于 2011-05-25 19:26 |只看该作者
3.17.1
implementation-defined value
unspecified value where each implementation documents how the choice is made
实现定义的值
各实现均明确说明如何选取的未规定的值

论坛徽章:
0
245 [报告]
发表于 2011-05-25 21:48 |只看该作者
你好,希望我的问题不要太白痴:前段时间考虑这个问题,问我导师没问个接过来。

Q:C语言,作为一门语言提供给我们的到底是什么呢,关键字+语法?

问题的来源是我看到 这句话:linux内核不使用 C语言函数库,因为太大且耗时。

我就不是很明白,那些C语言库是用什么写的呢,比如申请内存,malloc函数,他内部又是怎么实现的呢。

论坛徽章:
2
天蝎座
日期:2014-03-28 10:18:052015年亚洲杯之乌兹别克斯坦
日期:2015-02-10 11:32:25
246 [报告]
发表于 2011-05-26 09:11 |只看该作者
Q:C语言,作为一门语言提供给我们的到底是什么呢,关键字+语法?

问题的来源是我看到 这句话:linux内核不使用 C语言函数库,因为太大且耗时。

--------------------------------------------------------------------------------------

首先,操作系统提供给我们的是屏蔽了底层实现的API,这些API接口在不同操作系统上是基本相同的(比起底层实现的差异性,API确实要雷同得多,即使是windows和linux之间)

C语言很容易转换到汇编语言,所以C语言具有很高的效率,操作系统用C语言开发就可以利益于其高效性,又不会像汇编那样复杂。而C标准函数库是C代码及少量汇编代码的封装,它的作用是1.屏蔽操作系统实现细节。2.避免重复造轮子。这就是C语言的“移植性”。而操作系统本身就是直接工作在硬件之上,要这种移植性干嘛,何况本来C标准库就需要操作系统支持

操作系统用C语言写的,但没有现成的库可以调用,应用程序中使用的C函数库是已经在操作系统和编译器中实现好了的C代码(和少量汇编)

PS:其实我感觉说得很乱

PS2:以malloc为例,linux内核中是sbrk系统调用,而windows不一样。你写的包含malloc的程序可以在任何符合标准的os中编译。而sbrk是由操作系统实现的,sbrk是调整堆指针的位置实现内存的分配的

算了,还是等KBTiller解答吧

论坛徽章:
0
247 [报告]
发表于 2011-05-26 22:05 |只看该作者
回复 246# txdgtwpv


    我觉得你回答的不错,至少比我回答的好

论坛徽章:
0
248 [报告]
发表于 2011-05-26 22:19 |只看该作者
回复 245# 954423389


    我觉得C语言提供的无非是一种描述解决问题方法的手段

    至于“linux内核不使用 C语言函数库,因为太大且耗时”,我确实没认真思考过,不敢瞎说。感觉您的意思似乎是离开了库,C语言就没有提供什么。我不知道我是否对您的说法有误解

论坛徽章:
0
249 [报告]
发表于 2011-05-27 09:04 |只看该作者
回复 245# 954423389


    至于“那些C语言库是用什么写的呢,比如申请内存,malloc函数,他内部又是怎么实现的呢。”
    首先,理论上来说,库是用什么写的都有可能。但见到的,多半是C写的
    malloc()函数的实现机制并没有具体规定,其中的一些实现方式前面有所涉及,不少网友都有很精彩的见解。您可以向前翻一下

论坛徽章:
0
250 [报告]
发表于 2011-05-27 20:49 |只看该作者
3.17.2
indeterminate value
either an unspecified value or a trap representation
不确定的值
一个未规定的值或一个陷阱表示
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP