天嵌 ARM开发社区

 找回密码
 注册
查看: 2501|回复: 2

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

[复制链接]
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
#ifdef  CONFIG_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
一个串,字符串以\0 字符分隔不同的环境变量,以=号来分隔变量名字和变量值,

谢谢大侠的回答。
那我再问个问题
"bootargs="        CONFIG_BOOTARGS                        "\0"
中的"        CONFIG_BOOTARGS                        "前导空格和后导空格是不是不,会忽略到,不暂用字符元素。
如果我去掉中间的2个“”,"bootargs=        CONFIG_BOOTARGS                        \0"
那前导空格和后导空格是不是就应该占用字符元素了,同时CONFIG_BOOTARGS就不是变量了,而是字符串了?
请大侠们继续解惑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-4 04:28 , Processed in 1.046882 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表