アカウント名:
パスワード:
_Bool型あります。
_Bool a,b;a = 1;b = a+a;
printf(("%d\n",b);printf(("%d\n",(_Bool)(-1));
は共に1を表示します。
gccはかなり成績いいけど、もうちょっとマイナーなccの_Boolを本気でアラ探しすると、結構面倒なこと [ludd.ltu.se]になるよ
gccのboolって、結局8bit or 16bit intでなかったでしたっけ?
数年前、On/Offのフラグを320万個くらい確保しなくてならなくて必要なメモリ確保量に悲鳴を上げた覚えが。それならint型で配列確保するがな。
boolって、それを1bitで実現できるから便利なんだと思いましたですよ。#結局、8bit charを分解して1bitごとのbool代数にするライブラリを#独自開発して繰り延べ。#そういや、ユーザがこのストーリーにある「++」演算子をする可能性は全く考えてなかったw#まあ、俺が開発して俺が使うライブラリだからいいっかー
そうです。C++のboolもC99のboolも、&演算子でアドレスを取得できる必要がある、という理由で、1バイト以上の大きさが必須となっています。
ビット単位でのストレージは、C++ならクラス作ってなんとかしろということで、std::bitset<>、std::vector<bool>、boost::dynamic_bitsetなどが生まれましたね。
数年前、On/Offのフラグを320万個くらい確保しなくてならなくて必要なメモリ確保量に悲鳴を上げた覚えが。
#結局、8bit charを分解して1bitごとのbool代数にするライブラリを#独自開発して繰り延べ。
std::vector ・・・ (震え声)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
gcc -std=c99 (スコア:2)
_Bool型あります。
_Bool a,b;
a = 1;
b = a+a;
printf(("%d\n",b);
printf(("%d\n",(_Bool)(-1));
は共に1を表示します。
Re:gcc -std=c99 (スコア:1)
gccはかなり成績いいけど、
もうちょっとマイナーなccの_Boolを本気でアラ探しすると、
結構面倒なこと [ludd.ltu.se]になるよ
Re: (スコア:0, 荒らし)
gccのboolって、結局8bit or 16bit intでなかったでしたっけ?
数年前、On/Offのフラグを320万個くらい確保しなくてならなくて
必要なメモリ確保量に悲鳴を上げた覚えが。
それならint型で配列確保するがな。
boolって、それを1bitで実現できるから便利なんだと思いましたですよ。
#結局、8bit charを分解して1bitごとのbool代数にするライブラリを
#独自開発して繰り延べ。
#そういや、ユーザがこのストーリーにある「++」演算子をする可能性は全く考えてなかったw
#まあ、俺が開発して俺が使うライブラリだからいいっかー
Re:gcc -std=c99 (スコア:1)
そうです。C++のboolもC99のboolも、&演算子でアドレスを取得できる必要がある、という理由で、1バイト以上の大きさが必須となっています。
ビット単位でのストレージは、C++ならクラス作ってなんとかしろということで、std::bitset<>、std::vector<bool>、boost::dynamic_bitsetなどが生まれましたね。
Re: (スコア:0)
数年前、On/Offのフラグを320万個くらい確保しなくてならなくて
必要なメモリ確保量に悲鳴を上げた覚えが。
#結局、8bit charを分解して1bitごとのbool代数にするライブラリを
#独自開発して繰り延べ。
std::vector ・・・ (震え声)