BOOLのサイズが4バイト(つまり4の倍数)であるため、BOOL(typedef int)を使用するほうが標準のC++型boolよりも優れています。変数のレジスタやその行に沿ったものへの整列操作...C++ BOOL(typedef int)vs bool(パフォーマンス用)
これには何か真実はありますか?私はbool(1バイト)を使用しても4の倍数のアライメントを維持するためにコンパイラがスタックフレームを埋めると思いますか?
私は決して整列、登録などの基本的な仕組みに関する専門家ではないので、これが完全に間違っていたら事前にお詫びします。私は訂正したいと思う。 :)
乾杯!
'bool'が4バイトより速い場合、コンパイラは4バイトにします。シナリオによって異なります。そうではありません.BOOLはパフォーマンス上の利点はありません。 – tenfour
これはプロファイリングでしか知ることのできないものですが、0,1以外の値を持つブールが欲しいですか?負の値ですか? – juanchopanza
これで違いはありません。コンパイラは、値が正しく配置されるように値を埋めます。最も理にかなったタイプを使用してください。ブール値の場合は、 'int'(またはその' typedef')ではなく 'bool'にしてください。 –