| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1575 人关注过本帖
标题:谈谈c程序运行环境
只看楼主 加入收藏
绿茶盖儿
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:363
专家分:1852
注 册:2011-9-3
收藏
得分:2 
keil只能用于单片机的编程
2011-11-20 20:18
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:2 
受益了
2011-11-20 20:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 9楼 善水盈渊
不是所有编译器都提供同样的函数库,有些虽然算是标准函数,但不同编译器可能有不同的函数命名,具体要查所用编译器的使用手册。不要以为C的源代码是通用的,那是彻头彻尾的谎言。

授人以渔,不授人以鱼。
2011-11-20 20:21
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:2 
回复 13楼 TonyDeng
源代码虽不可通用,但是稍加修改就可以在不同的编译环境下通过,虽然会有点小差异,但大体还是相同的

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-20 20:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
10个编译器起码有5个不同,用#ifdef控制编译把源代码写在一个文件上与源代码通用是似是而非的东西。真正源代码可通用的是java,以及现在的.NET,C远远不是,别说Windows和Unix的差别,光是TC和MSC就够你头大的(在DOS时代我就写过这种东西,花在这上头的精力跟开发软件的比例是一比二,conio和graphics上面的函数就能让整个源代码长度翻一番,等于两套源代码合在一个文本文件中,这种所谓的源代码通用性,纯属多余,后来就各写各的,宁愿调用.exe也不把源代码混在一起)。还有一种最不可思议的情形,在PC-DOS和MS-DOS下都能够有差异,同一个函数读回来的目录名一个是有"\"的、一个是没有的,好,这下得检测操作系统,光类型还不行,还要看版本,好玩吧。

[ 本帖最后由 TonyDeng 于 2011-11-20 21:11 编辑 ]

授人以渔,不授人以鱼。
2011-11-20 21:03
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
是MS-DOS模拟的问题吧,读入的目录名是不是最后那个“\”的区别,可能它觉得有和没有都没差

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-20 21:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不是模拟的,那确实是两个不同公司出的操作系统,尽管绝大部分相同,但仍有微妙的区别(很多人以为PC-DOS是MS的出品,其实不是),MS起码也要跟人家的产品有所区别才行。其实即使是现在,我们写程序取目录名,也很难把握到底有没有最后那个"\",所以在VFP中专门有个内部函数ADDBS(),它是强制保证给你往路径字符串最后加上"\"的,因此,我现在在自己的C程序工具库中,也有类似的函数。

授人以渔,不授人以鱼。
2011-11-20 21:28
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
没办法,谁让MS是软件大王呢,说道DOS自然就想到了微软了。多个或者少个“\”是不是对程序的影响很大而且很难找错?

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-20 21:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
当你要往路径名后面加文件名检索的时候,有没有"\"就是致命的。而且,别忘了"\"是C语言的转义字符,有了它,紧接在后面的东西极可能变味。这种逻辑错误,不是对任何文件名都即刻呈现的,偶然才出错,但当时你绝对想不到是这里造成的,因为它能“正常”运行的时候居多。

授人以渔,不授人以鱼。
2011-11-20 22:09
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
所以要养成好的编程习惯,在检索文件名地时候一定要在最后加上一个函数以确保正确

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-21 13:07
快速回复:谈谈c程序运行环境
数据加载中...
 
   



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

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