Thank for your help!
------------------ ???????? ------------------
??????:
"tinycc-devel"
<t...@chqrlie.org>;
????????: 2025??5??16??(??????) ????7:30
??????: "tinycc-devel"<tinycc-devel@nongnu.org>;
????: Re: [Tinycc-devel] find a bug
Even better:
long long a = 123, b = 234;
printf("%lld %lld\n??, a, b);
Just use %lld and long long. %llu is for unsigned values.
Chqrlie.
On 16 May 2025, at 13:15, Sun via Tinycc-devel <tinycc-devel@nongnu.org>
wrote:
The problem is solved.
int64_t a=123,b=234;
printf("%llu %llu\n",a,b);
Just use %llu .
Thanks!
------------------ ???????? ------------------
??????:
"avih"
<avih...@yahoo.com>;
????????: 2025??5??16??(??????) ????7:05
??????: "tinycc-devel"<tinycc-devel@nongnu.org>;"Sun"<809935...@qq.com>;
????: Re: ?????? [Tinycc-devel] find a bug
No. long is also 32 bit on Windows.
On Friday, May 16, 2025 at 02:00:54 PM GMT+3, Sun <809935...@qq.com> wrote:
Can I use %lu? My os is windows.
#include <stdio.h>
#include <inttypes.h>
int main(int argc, char **argv)
{
int64_t a=123,b=234;
printf("%lu %lu\n",a,b);
return 0;
}
output:
123 0
------------------ ???????? ------------------
??????: "avih" <avih...@yahoo.com>;
????????: 2025??5??16??(??????) ????5:38
??????: "tinycc-devel"<tinycc-devel@nongnu.org>;
????: "Sun"<809935...@qq.com>;
????: Re: [Tinycc-devel] find a bug
I can confirm this output on Windows with mob f10ab130
(2025-03-28), but only with tcc 32 bit build.
And, at least on Windows, it also needs #include <inttypes.h>
However, this program is buggy, because the format %d is for
int (32 bit on Windows), while the values are 64 bit, so
a mismatch and undefined behavior is expected.
The correct C99/POSIX format for 64 bit signed int is PRId64,
like so: printf("%" PRId64 " %" PRId64 "\n", a, b);
And using that, the output is correct - 111 and 222.
Bottom line, the program is buggy, and IMO it's not a bug.
- avih
On Friday, May 16, 2025 at 12:20:04 PM GMT+3, Sun via Tinycc-devel
<tinycc-devel@nongnu.org> wrote:
#include <stdio.h>
int main(int argc, char **argv)
{
int64_t a=111,b=222;
printf("%d %d\n",a,b);
return 0;
}
output:
111 0
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel