C++ LNK2019 未解析的外部符号 stdlib

C++ LNK2019 unresolved external symbol stdlib

我有一个程序需要在其中一个函数中使用 atol()。所以我包括了 stdlib.h 但它似乎没有看到它。

编辑:我知道要使用它,我应该包括 stdlib.h。我这样做了,但我仍然收到此错误。 函数:

void
intstr( char *t )
{
    long int atol( char * );
    long x;
    int i;
    x=atol(t);

    for(i=0;i<nilit;i++){
        if(x == ilit[i]){
        lsymb =symbol[nsymb++] = 250+i;
        return;}
    }
    if( 50 <= nilit){ 
        puts("** too many int literals**");
        exit(1);
    }
    ilit[nilit++] = x;
    lsymb = symbol[nsymb++] = 249 + nilit;
}

我尝试构建时遇到的错误

 error LNK2019: unresolved external symbol "long __cdecl atol(char *)" (?atol@@YAJPAD@Z) referenced in function "void __cdecl intstr(char *)" (?intstr@@YAXPAD@Z)
C:x\X\X\X\Debug\p8program.exe : fatal error LNK1120: 1 unresolved externals

你有这个代码:

void
intstr( char *t )
{
    long int atol( char * );

这个atol()错误声明有什么意义?
要在您的代码中使用 atol(),只需 #include <stdlib.h>.

注意atol()的原型是:

long atol( const char *str );

(入参是一个const指针。)