国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網

標題: 關于字符串輸出問題請教 [打印本頁]

作者: ydz0515    時間: 2009-6-9 16:31
標題: 關于字符串輸出問題請教
看《感悟設計》 第17、“由數組非法操作想到的” 其中一段程序:
void print_string(int str_ID)
{
char string[10];  //修正后 char  string[50];
switch(str_ID)
{
case 0:  strcpy(string,“高壓危險”);
       break;
case 1:  strcpy(string,“安全電壓”);
       break;
case 2: strcpy(string,“請切換到備用電池,然后給主電池充電”);  //這里在原本定義 char string[10]; 時越界,修改為  char string[50];  后問題解決。
       break;
}
printf(string);
}

作者想要說明的是語句 case 2: strcpy(string,“請切換到備用電池,然后給主電池充電”);  由于string[ ]只定義了10個字節,因此造成數組越界,引起程序死機。好不容易查到問題所在,修正char  string[50]; 后,問題解決。(可以算出,該字符串大概需要35字節。)
我的疑問,printf(*str)語句可以直接輸出字符串,為何作者在這里卻要經過一個中間步驟?例:

strcpy(string,“高壓危險”);
printf(string);

先把code區的字符串常量"高壓危險"拷貝到data區數組string[ ]內,然后printf(string);

多此一舉呀?誰能幫俺解釋這種高手寫的程序,畢竟作者是研發主管,干了十多年開發工作,又是寫在書上教導咱菜鳥的程序。實在一頭霧水。

這段程序的編譯結果大致為:
linking...
Program Size: data=80.1 xdata=0 code=1418
"test" - 0 Error(s), 0 Warning(s).

?STACK=68H(=104)   堆棧指針在程序初始就高到了104,還有多少字節好用?

那如果要求輸出的字符串更長的話,按照作者程序概念,是不是我要定義char  string[100]; 或者更長?
作者: hotpower    時間: 2009-6-10 00:45
char str[sizeof("請切換到備用電池,然后給主電池充電") + 1];  

不要養成string做變量名(字符串名)的壞習慣~~~
作者: ydz0515    時間: 2009-6-10 09:00
換一種寫法:

void print_string(int str_ID)
{
switch(str_ID)
{
case 0:     printf("高壓危險");
       break;

case 1:    printf("安全電壓");
         break;

case 2:    printf("請切換到備用電池,然后給主電池充電");   

       break;
}

}

編譯結果:

linking...
Program Size: data=9.0   xdata=0    code=238
"test" - 0 Error(s), 0 Warning(s).

?STACK=08H       堆棧指針指向08, 沒用到任何數組和RAM內存!
作者: ydz0515    時間: 2009-6-10 09:11
再換一種寫法:
code char  *a="高壓危險";
code char  *b="安全電壓";
code char  *c="請切換到備用電池,然后給主電池充電";   


void print_string(int str_ID)
{
switch(str_ID)
{
case 0:    printf(a);
       break;

case 1:    puts(b);
         break;

case 2:    puts(c);   

       break;
}

}

編譯結果:

linking...
Program Size: data=9.0   xdata=0    code=234
"test" - 0 Error(s), 0 Warning(s).

?STACK=08H       堆棧指針指向08, 沒用到任何數組和RAM內存!




歡迎光臨 電子工程網 (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 日日狠狠的日日日日 | 男人色网站 | 国产福利区一区二在线观看 | 精品在线一区 | 天堂网免费 | 99成人国产精品视频 | 97精品国产97久久久久久 | 国产成人综合在线观看网站 | 久久精品国产亚洲麻豆小说 | 国产欧美在线观看精品一区二区 | 国产欧美精品三区 | 久久久性视频 | 人成免费网站 | 国产日本欧美亚洲精品视 | 国产入口在线观看 | 精品国产欧美一区二区 | 我被拉拉口的好爽 | 精品小视频在线 | 91精品国产一区 | 特级做a爰片毛片免费看 | 国产成人精品三区 | 在线观看 亚洲 | 麻豆爱爱 | 国产香蕉精品视频在 | 土地公土地婆免费观看全集 | 一级毛片免费毛片一级毛片免费 | 亚洲午夜久久久久久91 | 亚洲 欧美 卡通 在线 另类 | 欧美成人高清 | 亚洲天堂v | 精品国产亚洲人成在线 | 在线观看精品视频网站www | 欧美国产日韩在线观看 | 欧美男人的天堂 | 赤井美月在线 | 岛国一区二区 | 久久久久女人精品毛片 | 欧美一级黄色片免费看 | 久久亚洲精中文字幕冲田杏梨 | 天堂视频在线视频观看2018 | 靠逼视频网站 |