国产毛片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://www.qingdxww.cn/)
Powered by Discuz! X3.4
主站蜘蛛池模板:
自拍一区在线
|
久久91精品国产一区二区
|
香蕉视频地址
|
综合网在线视频
|
成人网在线视频
|
亚a在线
|
97在线亚洲
|
国产色在线
|
四虎永久免费地址ww 41.6
|
高清不卡免费一区二区三区
|
好吊爽在线播放视频
|
欧美a在线观看
|
亚洲情乱
|
四虎最新影院
|
久久国产精品一区
|
日本四虎影视
|
国产经典自拍
|
一级做a爰片久久毛片
|
国产在线干
|
欧美日韩综合视频
|
日本亚洲精品成人
|
狠狠噜噜
|
欧美第一页在线观看
|
日韩视频 中文字幕 视频一区
|
欧美日韩国产一区二区三区
|
欧美高清另类video
|
成人精品一区二区久久
|
国产免费私拍一区二区三区
|
久久h视频
|
触手系列精品集
|
国产91视频观看
|
日本在线观看www免费
|
蓝月战士奥特曼免费看
|
亚洲另类在线视频
|
天堂素人在线
|
无圣光私拍一区二区三区
|
91在线 在线播放
|
欧美日韩中文在线视频
|
国产欧美日韩图片一区二区
|
国产九九视频在线观看
|
日韩高清在线不卡
|