こんにちは。 C言語の厳密な仕様・規格等については詳しくありませんが、#1さんが 書かれているとおり、 signed も unsigned も付けずに単に、char型として宣言した場合、 符号付き(signed)となるか、符合無し(unsigned)となるかは、 言語仕様としては【未定義】であり、 その扱いは、処理系依存(コンパイラにより定義が異なる) となるようです。(※下記参考サイト参照) ■参考サイト C言語編 第10章 変数のサイズ http://www.geocities.jp/ky_webid/c/010.html [迷信] char 型は符号付き http://www.kijineko.co.jp/tech/superstitions/cha … 何故、単一のchar型があるかというと、これは勝手な憶測ですが、 コードの記述を簡単(シンプル)にして、見易くするため? なのかも
abs 関数というのは絶対値を求める関数です。C では int 型の引数を受け取り int 型の値を返します。C++ では、int 版以外に、long 版、float 版、double 版、long double 版、std::complex クラステンプレート版が多重定義されています。絶対値を求める関数ですから、ゼロまたは正の値を返すのが数学的に正しい振る舞いです。 ところが、現実には必ずしもそうはならない場合があります。まずは、浮動小数点数や複素数の引数として非数(NaN)が渡された場合がそうです。これについては、それほど大きな問題になることはないでしょう。問題は整数の場合です。 abs 関数に INT_MIN を与えた場合を考えてみてください。負の値の内部表現に 2 の補数を使う処理系(実質的にすべての処理系と考えても、あながち間違いとはいえません)では、INT_MIN の絶対値は
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く