私がここで直面している主な問題は、strtoll()
がVC 2010(error C3861: 'strtoll': identifier not found
)でエラーとしてフラグが立てられていることです。 strtol()
と交換すると同じことが起こりますか?次のCコードで何が問題になっていますか?
unsigned int get_uintval_from_arg(int argc, int index, char **argv,
unsigned int lower_bound, unsigned int upper_bound)
{
unsigned int return_val=0;
if (index + 1 <= argc - 1)
{
return_val=(unsigned int)strtoll(argv[index+1],NULL,10);
if (errno == EINVAL || errno== ERANGE)
{
fprintf(stderr, "Could not parse argument %s for switch %s!\n",
argv[index], argv[index+1]);
return 0;
}
}
// ....... I will post the remaining part of the code if necessary
.......
}
あなたのプログラムに##を含めましたか? 'long long'は' unsigned long'よりもずっと長いので、 'long long'バリアントを使用しようとしているのはなぜですか? –
sarnold
はい含まれています –
John
'long long'は最新のISO 9899:99 C標準の一部であり、Microsoftがサポートしていない" C99 "です。 Visual Studioは、1990年から21年間のC標準のみをサポートしています。 – Lundin