Re: C/C++ 語言新手十三誡 -- Ver. 2016
請問一下 看到第七誡 有個例子不甚了解
=====================
錯誤例子: (感謝 sekya 網友提供)
unsigned char a = 0x80; /* no problem */
char b = 0x80; /* implementation-defined result */
if( b == 0x80 ) { /* 不一定恒真 */
printf( "b ok\n" );
}
說明:語言並未規定 char 天生為 unsigned 或 signed,因此將 0x80 放入
char 型態的變數,將會視各家編譯器不同作法而有不同結果
======================
常常看到大家使用或是傳遞buffer都是char 型別,
看完這例子讓我覺得是不是都可能有問題?
把一個超過127的數值塞給char 就可能有問題?
或是拿出來跟超過127的數值做比較也會有問題?
如果這樣是不是buffer 都應該用unsigned char 來宣告跟操作才保險呢
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 92.40.249.208
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1465599064.A.76E.html
推
06/11 07:40, , 1F
06/11 07:40, 1F
→
06/11 08:04, , 2F
06/11 08:04, 2F
→
06/11 11:14, , 3F
06/11 11:14, 3F
→
06/11 11:24, , 4F
06/11 11:24, 4F
→
06/11 11:24, , 5F
06/11 11:24, 5F
→
06/11 14:08, , 6F
06/11 14:08, 6F
→
06/11 23:55, , 7F
06/11 23:55, 7F
推
06/12 14:27, , 8F
06/12 14:27, 8F
推
06/12 14:36, , 9F
06/12 14:36, 9F
討論串 (同標題文章)
完整討論串 (本文為第 6 之 6 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章