字符串,字符串数组搞不清楚!
请问各位大侠下面这个数组中存放的是一个字符串,还是多个字符串,并且请详细解释"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"
}; 一个串,字符串以\0 字符分隔不同的环境变量,以=号来分隔变量名字和变量值, 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]