标题:[求助]如何返回数组?
只看楼主
gree
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2005-11-2
得分:0 

噢,这只是取其中的一个数组
有好多数组,所以选择条件编译
难道还有其他好办法?


2005-12-02 14:27
gree
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2005-11-2
得分:0 

大侠们,还是不行呀,我该怎么办?
#include<stdio.h>

#define ABC_C33

unsigned int *condition(void);

void main()
{
unsigned int *mat;
int n;
unsigned int buf[16];
mat=condition();
for(n=0;n<16;n++) {
buf[n]=* mat++;
printf("0x%02x,",buf[n]);
}
}
unsigned int *condition(void)
{
#ifdef ABC_C33
unsigned int ASC16_C33[16] = {
0x00,0x00,0x18,0x3c,0x3c,0x3c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00
};
return ASC16_C33;
#endif
}


2005-12-02 15:14
cherrysindow
Rank: 2
等 级:论坛游民
帖 子:124
专家分:10
注 册:2005-10-21
得分:0 
unsigned int *condition(int* n)
{
#ifdef ABC_C33
unsigned int ASC16_C33[16] = {
0x00,0x00,0x18,0x3c,0x3c,0x3c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00
};

*n=16;
return ASC16_C33;
#endif
}



n代表数组的长度

虽然我很普通,但是我很讲道理 如果我的问题冒犯了您 请不要生气 因为我是无意的
2005-12-02 21:00
gree
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2005-11-2
得分:0 
指针n在主函数里有什么作用?能给一下提示吗?

2005-12-03 20:45
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

static unsigned int ASC16_C33[16]=
{
0x00,0x00,0

我上面说了,你这样用法很怪

#include<stdio.h>

#define ABC_C33
#define ABC_C34

unsigned int*condition(void);

int main()
{
int n;
#undef ABC_C33
//#undef ABC_C34
#ifdef ABC_C33
static unsigned int buf[16]=
{
0x00,0x00,0x18,0x3c,0x3c,0x3c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00
}
;
#else
static unsigned int buf[16]=
{
0x01,0x01,0x18,0x3c,0x3c,0x3c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00
}
;

#endif
for(n=0;n<16;n++) printf("0x%02x,",buf[n]);


}





九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-12-03 21:24
gree
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2005-11-2
得分:0 
我想问一下static声明的变量是不是在只能同一个c文件中访问,如果我声明的数组在另一个c文件,在主函数main里调用,这该怎么办

2005-12-04 17:27
ZJSX133
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-11-8
得分:0 
那个condition函数里面的数组要么用静态的表示,要么用MALLOC申请一块内存(调用之后记得释放),之后再返回首地址!否则你很难得到正确的数值!


2005-12-07 16:12
badstreams
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-23
得分:0 

#include<stdio.h>

#define ABC_C33

unsigned char *condition(void);

void main()
{
unsigned char *mat;
int n;
char buf[16];
mat=condition();
for(n=0;n<16;n++) {
buf2[n]=* mat++;
printf("0x%02x,",buf[n]);
}
}
unsigned char *condition(void)
{
#ifdef ABC_C33
static unsigned char ABC_33[16] = {
0x00,0x00,0x18,0x3c,0x3c,0x3c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00
};
return ABC_33;
#endif
}
这样应该就可以了~~

2005-12-07 16:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-36294-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.199740 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved