I have a program that requires atol() in one of its functions. So I included stdlib.h but it doesn't seem to see it.
EDIT: I'm aware to use it, I should include stdlib.h. I did that but I'm still getting this error. The function:
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;
}
The error I get when I try to build
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
You have this code:
What's the point of this
atol()
wrong declaration?To use
atol()
in your code, just#include <stdlib.h>
.Note that the prototype of atol() is:
(The input parameter is a const pointer.)