恥は/dev/nullへ by 初心者

プログラミング素人がのろのろと学んだことをつづっています♪

getcharとgetcheの戻り値はint型らすぃ

getcharもgetcheも文字を扱う関数ですが、書籍によると戻り値はint型と書かれています。「char型じゃないんか!」と少し驚きつつ、調べてみました。


C言語学習はVisual Studio Community 2019で行っているので、MicroSoft社のページを調べてみました。

 

 以下のリンク先を見ると、getcharの戻り値は確かにint型と書かれています。

https://docs.microsoft.com/ja-jp/cpp/c-runtime-library/reference/getchar-getwchar?view=vs-2019#syntax
 

次はgetcheの戻り値を調べてみましょう。
https://docs.microsoft.com/ja-jp/cpp/c-runtime-library/reference/getche?view=vs-2019
このリンク先に

Microsoft 固有の関数名 getche は、 _getche関数の非推奨のエイリアスです。

と書かれています。

 

そこで、_getcheのページを読んでみると、戻り値は int型と書かれています。

getche_getcheエイリアスなら、getcheの戻り値もint型になるはずです。

 

実験がてら、以下のコードを書いてみました。

#include <stdio.h> 
#include <conio.h>

int main(void)
{
    printf("getcheの戻り値は %d バイト", sizeof(getche()));
    return 0;
}

 

コードの実行結果

getcheの戻り値は 4 バイト

これはint型のサイズと一致します(備考:私の環境では、int型は4バイトです)。 

 

以上のことから、getcheの戻り値はint型の可能性が高いです。