二维数组与eumu

liuxin0534 2009-10-18 10:49:59
typedef enum {
RESET,
TRACK_COLOR,
SEND_FRAME,
HI_RES,
FRAME_DIFF,
GET_VERSION,
GET_MEAN,
SET_SERVO,
CAMERA_REG,
CAMERA_POWER,
POLL_MODE,
LINE_MODE,
SEND_JPEG,
VIRTUAL_WINDOW,
DOWN_SAMPLE,
GET_HISTOGRAM,
TRACK_WINDOW,
GET_TRACK,
GET_WINDOW,
LED_0,
NOISE_FILTER,
TRACK_INVERT,
SERVO_MASK,
SERVO_PARAMETERS,
SERVO_OUTPUT,
GET_SERVO,
SET_INPUT,
GET_INPUT,
SET_TRACK,
BUF_MODE,
READ_FRAME,
OUTPUT_MASK,
PACKET_FILTER,
CONF_HISTOGRAM,
GET_BUTTON,
FRAME_DIFF_CHANNEL,
LOAD_FRAME,
RAW_MODE,
HIRES_DIFF,

RETURN,
CMUCAM2_CMDS_COUNT
} cmucam2_command_t;

char cmucam_cmds[CMUCAM_CMDS_COUNT][3] = {
[RETURN] = "",


[BUF_MODE] = "BM",
[READ_FRAME] = "RF",


[CAMERA_REG] = "CR",
[CAMERA_POWER] = "CP",


[POLL_MODE] = "PM",

[RAW_MODE] = "RM",
[PACKET_FILTER] = "PF",
[OUTPUT_MASK] = "OM",


};
cmucam_cmds那个二维[3]表示什么??[RETURN] = ""这个与那个[3]有什么关系??[RETURN] = ""可以当单字符存在内存中??printf("s",cmucam_cmds[0]);打印信息是什么??为什么??
...全文
116 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxin0534 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zjhiphop2006 的回复:]
cmucam_cmds那个二维[3]表示三个字符串数组;
[RETURN] = ""这个与那个[3]的关系是,首先说明一下数组的初始化:
初始化形式:
  存储类别类型数组名[下标1][下标2]={常量l,常量2,…,常量n);
  例如:
  int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  a[O][O]=1,aEO][1]=2,a[O][2]=3,a[O][3]=4,
  a[1][O]=5,a[1][1]=6,a[1][2]=7,a[1][3]=8,
  a[2][O]=9,a[2][1]=10,a[2][2]=11,a[2][3]=12
所以,[RETURN] = ""与[3]的关系实际上是限制长度为3
[RETURN] = ""可以当单字符存在内存中?不可以,可以表示一个字符串
printf("s",cmucam_cmds[0]);?这条语句不会编译通过的,因为cmucam_cmds[0]相当于数组的首地址,你打印的时候会把地址打出来的
[/Quote]那cmucam_cmds[0][0]=([RETURN] = "")???我printf参数是S,上面写错了应该是printf("%s",cmucam_cmds[0]);?
zjhiphop2006 2009-10-18
  • 打赏
  • 举报
回复
cmucam_cmds那个二维[3]表示三个字符串数组;
[RETURN] = ""这个与那个[3]的关系是,首先说明一下数组的初始化:
初始化形式:
存储类别类型数组名[下标1][下标2]={常量l,常量2,…,常量n);
例如:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
a[O][O]=1,aEO][1]=2,a[O][2]=3,a[O][3]=4,
a[1][O]=5,a[1][1]=6,a[1][2]=7,a[1][3]=8,
a[2][O]=9,a[2][1]=10,a[2][2]=11,a[2][3]=12
所以,[RETURN] = ""与[3]的关系实际上是限制长度为3
[RETURN] = ""可以当单字符存在内存中?不可以,可以表示一个字符串
printf("s",cmucam_cmds[0]);?这条语句不会编译通过的,因为cmucam_cmds[0]相当于数组的首地址,你打印的时候会把地址打出来的
Caballeroo 2009-10-18
  • 打赏
  • 举报
回复
cmucam_cmds[X][3]表示二位数组,X行3列。

[RETURN] = "",和3的关系是,[RETURN]的内容最大为3个字符。[RETURN] = "",表示内容为空。

printf("s",cmucam_cmds[0]);内容应该为空,因为没有初始化。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧