このスレッドはロックされています。記事の閲覧のみとなります。
トップページ > 記事閲覧
関数の戻り値にboolではなくintを採用されている理由
名前:巨人に登る 日時: 2019/04/11 18:07

いつもお世話になっております。初歩的な事でしたら申し訳ありません。 DXライブラリの関数で、戻り値をboolではなくintを採用されている物が多いのはなぜでしょうか。
メンテ

Page: 1 |

Re: 関数の戻り値にboolではなくintを採用されている理由 ( No.1 )
名前:管理人 日時:2019/04/12 00:18

理由は非常に単純です、DXライブラリは元となったライブラリがあるのですが( そのライブラリが 一般公開されておらず、便利なので一般公開すれば絶対使う人が居る!と思い『元となったライブラリ』を 作られた方に許可をいただき非常によく似たライブラリ( DXライブラリ )を作りました )、 その『元となったライブラリ』の戻り値が bool ではなく int だったからです 理由の説明は以上です、ここからは蛇足ですので、もしご興味がありましたら読んでください 主な理由は前述の通り『元となったライブラリ』が bool ではなく int だったから、なのですが、 では何故『元となったライブラリ』は bool を使っていなかったのかについての勝手な推理です 『元となったライブラリ』は私が出会った時点( 1999年 )で、一番最初のバージョンが開発されてから 既に数年が経過していました そして私が最初に触れた時点ではDXライブラリと同じく Windows用のライブラリだったのですが、 最初のバージョンは Windowsより前のマイクロソフトの OS である MS-DOS用のライブラリでした ここから先は推測なのですが、『元のライブラリ』も私が出会った時点ではソースファイルは拡張子が cpp の C++形式で、 DXライブラリと同じく『C言語の知識だけで使うことができるけど、ソースファイルは C++形式』という状態でしたが、 MS-DOS時代のバージョンでは拡張子が c の純粋な C言語形式だったのではないかと考えています ( DirectX が C言語では非常に使い辛い仕様な為、Windows版にする際に C++言語にしたのではないかと推測… ) そして、C言語で bool 型が正式な型として採用されたのは 1999年12月1日で、VisualC++ などの実際の 開発環境で C言語で bool型が使えるようになるのは更にもっと後になります それ以前は C言語では bool 型は無く、代わりに #define BOOL unsigned char #define TRUE 1 #define FALSE 0 などの定義をして通常の unsigned char 型や int 型で bool, true, false を表現していました また、上記のような BOOL, TRUE, FALSE も使わずにDXライブラリのように 0 が成功、0 以外が失敗とする 場合も現在より多かったです( Windows95 以降で使える API である Win32 API も基本的には 0が成功、0以外が失敗となっています ) 1999年より前に作成された『元のライブラリ』が元々純粋な C言語のライブラリである場合、 戻り値の型に bool を使うことはそもそもできないので、初期バージョンは当然 bool型以外を戻り値の型とし、 そして Windows版の C++用ライブラリとなった後もDXライブラリと同じような理由で int型を使用し続けていたのではないか…と推測しています 長文失礼しました m(_ _;m
メンテ
Re: 関数の戻り値にboolではなくintを採用されている理由 ( No.2 )
名前:巨人に登る(解決) 日時:2019/04/12 10:31

なるほど、そのような経緯があったのですね。 回答して下さりありがとうございました。
メンテ

Page: 1 |