[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: кросскомпиляция mingw32 на Debian



В сообщении от 18 Август 2006 17:26 Dmitry E. Oboukhov написал(a):
> #include <stdio.h>
> 
> int main(int argc, char ** argv)
> {
>   long long a=300, b=400;
> 
>   printf("a=%lld b=%lld\n", a, b);
> }

Есть мысль, что printf тянется из библиотеки msvcrt.dll. А она не знает что
такое long long. А твою строку формата разбирает, как вывести два long. В
итоге он снимает со стека первые четыре байта (они равны 300), а потом
вторые четыре (они все по нулям). Попробуй присвоить так

> #include <stdio.h>
> 
> int main(int argc, char ** argv)
> {
>   long long a=0x000001900000012c, b=0;
> 
>   printf("a=%lld b=%lld\n", a, b);
> }

если напечатает "a=300 b=400", то я прав.

--
Макс



Reply to: