кросскомпиляция mingw32 на Debian
>> #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", то я прав.
именно так и есть
линуксовый тест выводит
./test
a=1717986918700 b=400
а вендовый
a=300 b=400
мдя. и багрепорт не знаешь куда заслать
и вывести бы эти long long надо... :(
Reply to: