C++相談室 part111

このエントリーをはてなブックマークに追加
61デフォルトの名無しさん
long long intとかC言語由来の型は狂っとる
int32とかint64とかでよかったな
62デフォルトの名無しさん:2014/03/02(日) 11:21:52.90
そもそもなんで「char≦short≦int≦long」「float≦double≦long double」なんて規格になってるんだよ……
せめて「<」にしとけよ常識的に考えて
仮に使わざるを得ないとしても、最初からtypedef修飾された__int32とかint32_tとかを全面に押し出しておけば迷いようがないのに
63デフォルトの名無しさん:2014/03/02(日) 11:30:46.09
そりゃどんな環境でも動けるようにだろう
64デフォルトの名無しさん:2014/03/02(日) 11:41:57.10
8bitレジスタしかないマシンを動かしたことがないんだろうな
6562:2014/03/02(日) 11:54:46.95
>>64
いや別に機械毎にintのサイズが違うのはしゃーないと思っている
だが、「実は表現サイズが違いましたー」とかだと同じコードが動かない可能性があるだろ……
それとも何? ある変数(例えばint型)の許容範囲が、
マシンAだと16bit、マシンBだと32bitまでしか入力できないのに「同じ動作」と見なせって?
「素じゃ64bit型とか計算出来ない」んならコンパイラ側で対応(多倍長整数をソフトウェア実装)するか
規格的に「64bit計算できるか」のフラグでも規定しておけば済む話だったろうに
66デフォルトの名無しさん:2014/03/02(日) 12:08:16.04
>>65
だったら# if sizeof(int) >= 4 とか書けよ
67デフォルトの名無しさん:2014/03/02(日) 12:18:52.43
可哀想にワードアドレッシングなコンピュータに対する知識
が欠落しているのですね
68デフォルトの名無しさん:2014/03/02(日) 12:20:43.52
>>65
> コンパイラ側で対応(多倍長整数をソフトウェア実装)する
gccならlibgmpでそれやってるな
69デフォルトの名無しさん:2014/03/02(日) 14:14:01.53
>>65,62
1byteが10bitだったらどうするの?
無意味に8bit余らせるの?