NewNew 发表于 2011-1-4 19:42:21

这个C有何不妥

各位好!我以前多用汇编,当数组作为函数的参数的时候有何要领,这样写为何编译不过和,我的NUMBER[]和buf[]都是全局变量


void test(U8 Cycle[])
{
        Buf = Number[(Cycle%10)];
        Buf = Number[(Cycle/10)];
        Buf = Number[(Cycle%10)];
        Buf = Number[(Cycle/10)];
        Buf = Number[(Cycle%10)];
        Buf = Number[(Cycle/10)];
        Buf = Number[(Cycle%10)];
        Buf = Number[(Cycle/10)];
}

jpchen 发表于 2011-1-4 19:49:04

你要将数组传进去,一般是写成:U8 *Cycle,而不是:U8 Cycle[]。

NewNew 发表于 2011-1-4 19:54:42

回复【1楼】jpchen
-----------------------------------------------------------------------

你好!那如果我写成 U8 *Cycle后面的如何写呀! 我的想法是把数组传进去而且通过数组下标去计算

gale 发表于 2011-1-4 19:57:25

数组做参数,就是传首地址进去,内部还按照数组访问就行了。

NewNew 发表于 2011-1-4 19:58:19

void test(U8 *Cycle)
{
Buf = Number[(Cycle%10)];
Buf = Number[(Cycle/10)];
Buf = Number[(Cycle%10)];
Buf = Number[(Cycle/10)];
Buf = Number[(Cycle%10)];
Buf = Number[(Cycle/10)];
Buf = Number[(Cycle%10)];
Buf = Number[(Cycle/10)];
}
这样写不行呀!

ccstc 发表于 2011-1-4 20:06:40

回复【楼主位】NewNew
-----------------------------------------------------------------------
看错了
应该没问题才对,什么编译器

Clinging 发表于 2011-1-4 20:07:44

#include "REG52.H"

typedef unsigned char U8;

U8 Buf;
U8 Number = {
0,1,2,3,4,5,6,7,8,9, //数码管???
};

void test(U8 *p)
{
        Buf = Number % 10];
        Buf = Number / 10];
        Buf = Number % 10];
        Buf = Number / 10];
        Buf = Number % 10];
        Buf = Number / 10];
        Buf = Number % 10];
        Buf = Number / 10];       
}

int main(void)
{
        U8 tmp;

        tmp = 12;
        tmp = 34;
        tmp = 56;
        tmp = 78;

        test(tmp);
        while(1);       
}

NewNew 发表于 2011-1-4 20:08:37

回复【5楼】ccstc
-----------------------------------------------------------------------

问题是我多处用到,也就是说有的地方要把Cycle数组的值传给buf有的地方要把Fre[]的值传给buf

NewNew 发表于 2011-1-4 20:14:12

回复【5楼】ccstc
-----------------------------------------------------------------------

iar
页: [1]
查看完整版本: 这个C有何不妥