strtol
in cのいくつかの例外的な結果に遭遇しました
サンプルプログラムはこちら。
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%x\n", strtol("0xfffff70A", NULL, 0));
return 0;
}
この単純なプログラムの出力は
0x7fffffff
ではなく0xfffff70A
。を使用するstrtoul
と、結果は正確に になり0xfffff70a
ます。私は 32 ビット マシンを使用していますが、どうなるのでしょう。PS。gcc 4.7.2 を使用しています