编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
 
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

strcpy函数怎么写

本主题由 死了都要C 于 2008-5-15 16:55 下沉
Vx能不能推荐几本汇编编程的技巧方面的书籍?以前似乎都有人写这方面的文章的。最近都是高级语言,这些东西都很少了………………
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

看了下,这帖子长的好快啊.提高单位可复制长度,减少指针移动..呵呵,Vx有什么好的汇编书吗?介绍下啊.
学习需要安静。。海盗要重新来过。。

TOP

引用某人曾经的言论:
引用:
-,-争论的意义?-,-
其实,能够跟偶吵得起来的,都是特别爱面子的人。
我自己嘛,说话比较直接,经常不经意就说出自己最真实的感受
特别地,对别人写的代码,一般我喜欢讲缺点。
过于直接,给别人感觉就像是看不起人。
特别地,当我所说的话,是对着一个爱面子的人的时候,
不可思议的事就在此时发生了,并且当累积到一定程度,
只要在这个时候再加一导火索,马上量变到质变,
并且有趣的是,这几次,导火索都是同一人制造的。
当我在20楼指出你的问题时你又是什么态度呢?
为什么总是只能看到别人的缺点?
=====================================================================
库函数由于不能移植,而且重点是健壮和高效,所以常常使用汇编语言对特定的平台进行优化。IA-32架构的pc机对内存使用cache进行4字节映射,所以4字节内存对齐,每次对内存取32bit数据是最为高效的。70楼的程序和Intel为奔腾之前的低端IA-32平台提供的库函数差不多。对库函数的调用不能进行假设,用户传递进来的地址未必就是内存对齐的,如果进行没有对齐的4字节访问,反而会降低效率,这样的库函数效率的发挥也是不稳定的,时高时低。

设计c语言时是对应早期的Von Nouma计算机物理模型,所以c是一种具有底层特性的高效语言,如指针,auto,register等概念对硬件的贴近程度当时除汇编外没有其他语言能够达到。Pentium之后出现的新技术使得c离新的底层越来越远,新的技术只能依靠智能的C编译器选择合适的新指令加以利用,这时就只有汇编语言允许程序员直接使用新特性了。实际工程项目中如果使用最好的算法仍不能达到满意的效率,这时就要进行profile,找出瓶颈,使用汇编进行优化。
25楼的言论太过狂妄。
Yesterday is a history, tomorrow is a mystery, and now is a gift, that's why is called present.

TOP

保持观望态度……汇编我是小菜,虽然4字节对齐我是知道的……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

呵呵.翅膀我陪你一起看..Vx兄弟我们要得书呢?
学习需要安静。。海盗要重新来过。。

TOP

>>需要加断言吗?
>>1.断言只是在debug版本中有用。
>>2.调用库函数时实参的有效性由调用者负责。

这是你在20楼说的。
那我问你一个问题,你写代码从来不写断言?
你就能保证你对库函数的调用永远正确有效?

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

我想说一句。首先库函数是没有断言的,因为提供的是二进制库。而且,我使用API的时候,WIN32 API也是没有断言的。它使用的办法是如果参数错误,就SetLastError,然后马上返回。当时我是十分震撼的。因为我很信任断言,几乎什么函数都用。了解这个以后,我才知道断言也有局限性。断言对二进制库无效。如果不公布原代码,断言对第三方库也是无效的。应该在断言之外提供通用的报错手段。
因此,《编程精粹》提供的方法是:库函数不检查参数,而是自己给库函数写“外壳”函数,在Debug版本中检查参数。在Release版本则直接调用。我现在也一直用这个办法。
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

引用:
以下是引用 雨中飛燕 在 2008-5-15 12:11 的发言:

>>需要加断言吗?
>>1.断言只是在debug版本中有用。
>>2.调用库函数时实参的有效性由调用者负责。

这是你在20楼说的。
那我问你一个问题,你写代码从来不写断言?
你就能保证你对库函数的调用永远正确有效?
你确定你已经理解了我的这两句话吗?
86楼理解的比你要深。
Yesterday is a history, tomorrow is a mystery, and now is a gift, that's why is called present.

TOP

引用:
以下是引用 StarWing83 在 2008-5-15 12:20 的发言:
我想说一句。首先库函数是没有断言的,因为提供的是二进制库。
说的可真是绝对
任何方法都有优点和缺点,但你不能否认断言是一个强有力的调试工具

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

好的好的,我知道我很菜,我回去再练两年再出来说话好了

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

发新话题