打印

在keil中如何定义和使用一个二维字符串数组?

[复制链接]
10469|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
henrygliet|  楼主 | 2007-4-15 14:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在keil中定义了一个二维字符串数组:
unsigned char code workState[][3] = {"工作正常……  ",
                                     "等待关机……  ",
                                     "可以关机。    "};

然后提示有错误:

CCS812.C(20): error C243: 'array[]': string out of bounds

这是为什么呢?

在程序中我是这样使用的:
unsingned char string[];
string[]=workState[1];
……
是否是我的调用有问题???还请各位大侠多多帮忙~~~~谢谢先~~~~

相关帖子

沙发
lixun00| | 2007-4-15 14:57 | 只看该作者

把3改大点,lz应看下书

使用特权

评论回复
板凳
zgl7903| | 2007-4-15 21:30 | 只看该作者

试一试code unsigned char *workState[]

code unsigned char *workState[] = {"工作正常……  ",
                                     "等待关机……  ",
                                     "可以关机。    "};

使用特权

评论回复
地板
ayb_ice| | 2007-4-16 07:56 | 只看该作者

与标准C是一样的,你的行列概念都搞错了...

使用特权

评论回复
5
rzm2001| | 2007-5-13 10:57 | 只看该作者

与标准C是一样的,你的行列概念都搞错了...

unsigned char code workState[3][20]={}

使用特权

评论回复
6
古道热肠| | 2007-5-13 11:35 | 只看该作者

写个样板程序给您,用指针吧!

#include <reg51.h>
#include <stdio.h>


//unsigned char code *workState[] = {"工作正常……  ",
//                                     "等待关机……  ",
//                                     "可以关机。    "};
unsigned char code *workState[] = {"Follow me",
                                     "how are you",
                                     "telephone to me"};

//然后提示有错误:

//CCS812.C(20): error C243: 'array[]': string out of bounds

//这是为什么呢?

//在程序中我是这样使用的:
//unsingned char string[];
//string[]=workState[1];
//……
//是否是我的调用有问题???还请各位大侠多多帮忙~~~~谢谢先~~~~

void main(void)
{
    unsigned char *ptrCurrent;
    unsigned char TestOneChar;
    
    SCON  = 0x50;                /* SCON: mode 1, 8-bit UART, enable rcvr      */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    TI    = 1;                  /* TI:   set TI to send first char of UART    */

    while(1)
    {
        ptrCurrent = workState[0]; 
        printf(ptrCurrent);
        printf("\n");
        ptrCurrent = workState[1];
 
        TestOneChar = ptrCurrent[1];
        TestOneChar = ptrCurrent[2];
        TestOneChar = ptrCurrent[3];

        printf(ptrCurrent);
        printf("\n");
        ptrCurrent = workState[2]; 
        printf(ptrCurrent);
        printf("\n");
    }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

89

帖子

1

粉丝