这个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)];
} 你要将数组传进去,一般是写成:U8 *Cycle,而不是:U8 Cycle[]。 回复【1楼】jpchen
-----------------------------------------------------------------------
你好!那如果我写成 U8 *Cycle后面的如何写呀! 我的想法是把数组传进去而且通过数组下标去计算 数组做参数,就是传首地址进去,内部还按照数组访问就行了。 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)];
}
这样写不行呀! 回复【楼主位】NewNew
-----------------------------------------------------------------------
看错了
应该没问题才对,什么编译器 #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);
} 回复【5楼】ccstc
-----------------------------------------------------------------------
问题是我多处用到,也就是说有的地方要把Cycle数组的值传给buf有的地方要把Fre[]的值传给buf 回复【5楼】ccstc
-----------------------------------------------------------------------
iar
页:
[1]