- 358 名前:デフォルトの名無しさん mailto:sage [2021/04/22(木) 17:06:31.92 ID:j9DIDz/e.net]
- 伝統的なCでは、
int strlen( const char *str ); だったのが、なぜか、64BITにも対応した後は、 size_t strlen( const char *str ); となってしまった。size_tは、必ずunsignedであるとされる。 ならばこのプロトタイプ宣言は、伝統的なCと互換性がない事になる。 しかも、伝統的に int a = sizeof(buf); のように、sizeof() は符号付き int を返す処理系が多かった。 一方、size_t は、sizeof()演算子の結果の符合なし整数とされる。 これもいろいろな意味で矛盾している。 C++11以降のC++はめちゃくちゃ。
|

|