strtolin 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 を使用しています