我在这里面临的主要问题是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
.......
}
您是否在程序中包含'#include'?由于“long long”比“unsigned long”长很多,为什么你要使用'long long'变种? –
sarnold
是的,我已经包含了 –
John
'long long'是最新的ISO 9899:99 C标准,“C99”的一部分,它不被Microsoft支持。 Visual Studio只支持自1990年以来的二十一年C标准。 – Lundin