我使用了
中给出的解决方案Troubling converting string to long long in C
在C中将字符串转换为long long。我正在使用Microsoft Visual Studio 2012。
编译时我收到错误
LNK2019:函数_main中引用的无法创建的外部符号_ + atoll。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char s[30] = { "115" };
long long t = atoll(s);
printf("Value is: %lld\n", t);
return 0;
}
答案 0 :(得分:2)
环礁功能在C99中被引入标准C语言。
不幸的是,Microsoft长期忽略了C99,并且没有在Visual Studio C编译器中实现任何功能,包括VS 2012。
这在VS 2013中发生了变化,这增加了相当多但不完整的C99支持。
最简单的选择可能是使用应该可用的_strtoi64,但请注意,这是Microsoft特定的功能,因此如果您尝试在其他地方编译代码,可能无法工作。
答案 1 :(得分:0)
atoll
已被弃用,似乎不包含在最新的VS版本中。使用strtoll
long long t = strtoll(s, NULL, 10);
如果那个不可用,那么看看_strtoi64
是否(具有相同的原型)。