В сообщении от 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", то я прав. -- Макс -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]