新・明快C言語で勉強しています. そこで文字列同士を比較するstrcmp関数の実現例として以下のコードが載っていました.
c
1int strcmp(const char *s1, const char *s2){ 2 while(*s1 == *s2){ 3 if(*s1 == '\0') 4 return 0; 5 s1++; 6 s2++; 7 } 8 9 return (unsigned char)*s1 - (unsigned char)*s2; 10}
上のコードで戻り値を計算する前にどうして(unsinged char)にキャストしているのか, わからないです.
実際, キャストせずに戻り値を返すようにしても正しく動きました. どのような意図で型変換しているのか教えてください. よろしくお願いします.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/11 02:32