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: