[讨论] 请教下这两段代码的区别

Sunrier   2011-6-13 13:18 楼主

    INT16U   i;
    INT8U   *prdytbl;
                                    
    prdytbl       = &OSRdyTbl[0];
    for (i = 0; i < OS_RDY_TBL_SIZE; i++)
    {
        *prdytbl++ = 0x00;
    }

 

 

 

    INT16U   i;
                                      
    prdytbl       = &OSRdyTbl[0];
    for (i = 0; i < OS_RDY_TBL_SIZE; i++)
    {
        OSRdyTbl = 0x00;
    }

 

  请问下源代码使用的是第一种方法,为什么不使用第二种方法?

 

回复评论 (10)

自己运行下,第二个能通过么
点赞  2011-6-13 14:09

第一种方法的效率要高多了。

第二种方法的赋值语句应写成“OSRdyTbl[i] = 0x00;”吧?

——这是论坛的毛病,半角的[i]会被解释成斜体字。
点赞  2011-6-13 14:42
呵呵,我说呢
点赞  2011-6-13 22:02
OSRdyTbl = 0x00;
有意义吗?OSRdyTbl本来就是数组的首地址
点赞  2011-6-14 12:29

引用: 原帖由 wstt 于 2011-6-14 12:29 发表 OSRdyTbl = 0x00; 有意义吗?OSRdyTbl本来就是数组的首地址

 

 

版主你都不了解你的论坛,你好意思吗?

 

借用2L的

第一种方法的效率要高多了。

第二种方法的赋值语句应写成“OSRdyTbl[i] = 0x00;”吧?

——这是论坛的毛病,半角的[i]会被解释成斜体字。
点赞  2011-6-14 13:32
无需多说,你直接反汇编你啥子都明白!还可以用memset初始化!

[ 本帖最后由 终极菜鸟 于 2011-6-14 15:11 编辑 ]
点赞  2011-6-14 15:10

第一个还可以实现

第二个根本实现不了,谁写的这是
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2011-6-14 15:37
第二个的意思大家应该明白,应该是用数组的形式表示。指针在C里面的效率远高于数组标号的。具体的参考谭浩强的C语言就行了
点赞  2011-6-14 22:28

引用: 原帖由 jishuaihu 于 2011-6-14 22:28 发表 第二个的意思大家应该明白,应该是用数组的形式表示。指针在C里面的效率远高于数组标号的。具体的参考谭浩强的C语言就行了

 

 

同意

点赞  2011-6-15 08:38

引用: 原帖由 Sunrier 于 2011-6-14 13:32 发表     版主你都不了解你的论坛,你好意思吗?   借用2L的第一种方法的效率要高多了。第二种方法的赋值语句应写成“OSRdyTbl[i] = 0x00;”吧?——这是论坛的毛病,半角的[i]会被解释成斜 ...

嘿嘿嘿,抱歉抱歉,我是个不合格的斑竹

点赞  2011-6-16 08:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复