ak, true true. Add ll to the end of the number. For example, it would be 89126342536ll (those are Ls not 1s) Brian On Wed, 16 Feb 2005 13:58:04 +0200, Victor <victor@xxxxxxxx> wrote: > I have gcc version 3.4.1 compiled with long long support - but the > result is the same. > If I try A simple program like this: > #include <stdio.h> > #include <stdlib.h> > int main(int argc, char **argv) { > long long int test; > test = 89126342536; > } > when I compile I get the following error: > test.cpp: In function `int main(int, char**)': > test.cpp:14: error: integer constant is too large for "long" type(long > long seems to have no effect - it steel refers to simple long for some > reason). > > "gcc -v" output: > Reading specs from /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/specs > Configured with: ../configure --prefix=/usr --libdir=/usr/lib > --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info > --enable-shared --enable-threads=posix --disable-checking > --enable-long-long --enable-__cxa_atexit --enable-clocale=gnu > --disable-libunwind-exceptions > --enable-languages=c,c++,ada,f77,objc,java > --host=i586-mandrake-linux-gnu --with-system-zlib > Thread model: posix > gcc version 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk) > > Brian Budge a scris: > > >Ah, okay. long int in most 32 bit system is the same as int. Usually > >there is a type called long long which is 64 bits on 32 bit systems. > > > > Brian > > > > > >On Wed, 16 Feb 2005 13:19:05 +0200, Victor <victor@xxxxxxxx> wrote: > > > > > >>Thank you. > >>The problem is that I don't know what type to declare the numeric variable. > >>If I try A simple program like this: > >>#include <stdio.h> > >>#include <stdlib.h> > >>int main(int argc, char **argv) { > >> long int test; > >> test = 89126342536; > >>} > >>when I compile I get the following error: > >>test.cpp: In function `int main(int, char**)': > >>test.cpp:14: error: integer constant is too large for "long" type > >> > >>I know I must replace the line "long int test" with something else, but > >>I don't know with what. > >>Thank you. > >> > >>Brian Budge a scris: > >> > >> > >> > >>>Hi Victor - > >>> > >>>The number you specify is larger than can be held in a 32 bit integer. > >>>Use atoll instead. > >>> > >>> Brian > >>> > >>> > >>>On Wed, 16 Feb 2005 12:53:50 +0200, Victor <victor@xxxxxxxx> wrote: > >>> > >>> > >>> > >>> > >>>>I have this simple script: > >>>> > >>>>#include <stdio.h> > >>>>#include <stdlib.h> > >>>>#include <string.h> > >>>>int main(int argc, char **argv) { > >>>> int test; > >>>> char *numar = "89126342536"; > >>>> test = atoi(numar); > >>>> printf("Test: %d", test); > >>>>} > >>>> > >>>>I want to convert the string numar to integer. > >>>>But the result - when I run the script is : > >>>>Test: 2147483647 > >>>>and I would expect: > >>>>Test: 89126342536. > >>>> > >>>>It seems that the number is too big. > >>>>How can I solve this problem. > >>>> > >>>>Thank you. > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > >>> > >> > >> > > > > > > > >