guobinname_301 发表于 2012-12-10 16:38:04

字符串,字符串数组搞不清楚!

请问各位大侠下面这个数组中存放的是一个字符串,还是多个字符串,并且请详细解释
"bootargs="        CONFIG_BOOTARGS                        "\0" 中的4个双引号是怎么配对使用的?
另外这种定义字符串的格式好像教科书上没有啊?请大侠们解惑!!!


uchar default_environment[] = {
#ifdef        CONFIG_BOOTARGS
        "bootargs="        CONFIG_BOOTARGS                        "\0"
#endif
#ifdef        CONFIG_BOOTCOMMAND
        "bootcmd="        CONFIG_BOOTCOMMAND                "\0"
#endif
#ifdef        CONFIG_RAMBOOTCOMMAND
        "ramboot="        CONFIG_RAMBOOTCOMMAND                "\0"
#endif
#ifdef        CONFIG_NFSBOOTCOMMAND
        "nfsboot="        CONFIG_NFSBOOTCOMMAND                "\0"
#endif
#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
        "bootdelay="        MK_STR(CONFIG_BOOTDELAY)        "\0"
#endif
#if defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
        "baudrate="        MK_STR(CONFIG_BAUDRATE)                "\0"
#endif
#ifdef        CONFIG_LOADS_ECHO
        "loads_echo="        MK_STR(CONFIG_LOADS_ECHO)        "\0"
#endif
#ifdef        CONFIG_ETHADDR
        "ethaddr="        MK_STR(CONFIG_ETHADDR)                "\0"
#endif
#ifdef        CONFIG_ETH1ADDR
        "eth1addr="        MK_STR(CONFIG_ETH1ADDR)                "\0"
#endif
#ifdef        CONFIG_ETH2ADDR
        "eth2addr="        MK_STR(CONFIG_ETH2ADDR)                "\0"
#endif
#ifdef        CONFIG_ETH3ADDR
        "eth3addr="        MK_STR(CONFIG_ETH3ADDR)                "\0"
#endif
#ifdef        CONFIG_IPADDR
        "ipaddr="        MK_STR(CONFIG_IPADDR)                "\0"
#endif
#ifdef        CONFIG_SERVERIP
        "serverip="        MK_STR(CONFIG_SERVERIP)                "\0"
#endif
#ifdef        CFG_AUTOLOAD
        "autoload="        CFG_AUTOLOAD                        "\0"
#endif
#ifdef        CONFIG_PREBOOT
        "preboot="        CONFIG_PREBOOT                        "\0"
#endif
#ifdef        CONFIG_ROOTPATH
        "rootpath="        MK_STR(CONFIG_ROOTPATH)                "\0"
#endif
#ifdef        CONFIG_GATEWAYIP
        "gatewayip="        MK_STR(CONFIG_GATEWAYIP)        "\0"
#endif
#ifdef        CONFIG_NETMASK
        "netmask="        MK_STR(CONFIG_NETMASK)                "\0"
#endif
#ifdef        CONFIG_HOSTNAME
        "hostname="        MK_STR(CONFIG_HOSTNAME)                "\0"
#endif
#ifdef        CONFIG_BOOTFILE
        "bootfile="        MK_STR(CONFIG_BOOTFILE)                "\0"
#endif
#ifdef        CONFIG_LOADADDR
        "loadaddr="        MK_STR(CONFIG_LOADADDR)                "\0"
#endif
#ifdef        CONFIG_CLOCKS_IN_MHZ
        "clocks_in_mhz=1\0"
#endif
#if defined(CONFIG_PCI_BOOTDELAY) && (CONFIG_PCI_BOOTDELAY > 0)
        "pcidelay="        MK_STR(CONFIG_PCI_BOOTDELAY)        "\0"
#endif
#ifdef        CONFIG_EMBEDSKY_LCD_TYPE
        "dwLCD_TYPE="        MK_STR(CONFIG_EMBEDSKY_LCD_TYPE)                "\0"
//        "dwPBcolor="        MK_STR(CONFIG_EMBEDSKY_LCD_PBCOLOR)        "\0"
//        "dwXSIZE_TFT="        MK_STR(CONFIG_EMBEDSKY_LCD_XSIZE_TFT)        "\0"
//        "dwYSIZE_TFT="        MK_STR(CONFIG_EMBEDSKY_LCD_YSIZE_TFT)        "\0"
        "dwVBPD="        MK_STR(CONFIG_EMBEDSKY_LCD_VBPD)                "\0"
        "dwVFPD="        MK_STR(CONFIG_EMBEDSKY_LCD_VFPD)                "\0"
        "dwVSPW="        MK_STR(CONFIG_EMBEDSKY_LCD_VSPW)                "\0"
        "dwHBPD="        MK_STR(CONFIG_EMBEDSKY_LCD_HBPD)                "\0"
        "dwHFPD="        MK_STR(CONFIG_EMBEDSKY_LCD_HFPD)                "\0"
        "dwHSPW="        MK_STR(CONFIG_EMBEDSKY_LCD_HSPW)                "\0"
        "dwCLKVAL="        MK_STR(CONFIG_EMBEDSKY_LCD_CLKVAL        )        "\0"
#endif
#ifdefCONFIG_EXTRA_ENV_SETTINGS
        CONFIG_EXTRA_ENV_SETTINGS
#endif
        "\0"
};

embedsky_lhh 发表于 2012-12-10 18:11:07

一个串,字符串以\0 字符分隔不同的环境变量,以=号来分隔变量名字和变量值,

guobinname_301 发表于 2012-12-11 10:48:32

embedsky_lhh 发表于 2012-12-10 18:11 static/image/common/back.gif
一个串,字符串以\0 字符分隔不同的环境变量,以=号来分隔变量名字和变量值,

谢谢大侠的回答。
那我再问个问题
"bootargs="        CONFIG_BOOTARGS                        "\0"
中的"        CONFIG_BOOTARGS                        "前导空格和后导空格是不是不,会忽略到,不暂用字符元素。
如果我去掉中间的2个“”,"bootargs=        CONFIG_BOOTARGS                        \0"
那前导空格和后导空格是不是就应该占用字符元素了,同时CONFIG_BOOTARGS就不是变量了,而是字符串了?
请大侠们继续解惑。
页: [1]
查看完整版本: 字符串,字符串数组搞不清楚!