ice__man的原创技术思想之家

如果一个人没有理想,那跟一条咸鱼又有什么分别?

新随笔 管理

一、需求

  (CSDN上有人贴出了微创的三道面试题目,这是第三道)

    在不同系列的CPU上面,有不同的字节序。为了在底层做适配,需要获取当前环境的字节序。请完成此功能。

二、现状

    但我看到大部分人用的都是用函数调用的方式,获取字节序。返回BigEndian, LitterEndian,Error的形式。

   缺点:1。开销大,函数开销大,如果能够以一条语句直接判断获取,效率会高的多。

  2。返回的Error形式,纯粹就是一种失败。即使返回Error,谁又会对这个Error进行处理?????这么简单一个函数都返回Error,你要上层的用户(调用此函数的用户)怎么处理?(原则:要么就不要返回错误;如果返回错误的,就一定要处理。)

三、新的解决办法

typedef  unsigned int DWORD;
typedef  unsigned short int WORD;

#define EndianTestNum 1
const DWORD dwEndianTest = EndianTestNum;
const WORD*  pwEndianFirst = &dwEndianTest;

#define bBigEndian (EndianTestNum == (*pwEndianFirst))

四、结论

  我没有测试,也没有优化,但应该没什么问题。不管是从可读性、还是从效率上来说,这应该都不错。

  我认为:编码、调试、测试是一个程序员的素质。软件的质量在于设计。设计来源于需求。

没去测是因为我相信设计上合理的东西,其他的都是小问题。

posted on 2004-11-07 13:48  ice_man  阅读(1198)  评论(0)    收藏  举报