bug in lrint [was: FW: Printing long int in C program under cygwin64]

Steven Penny svnpenn@gmail.com
Thu May 25 07:50:00 GMT 2017


On Wed, 24 May 2017 16:36:03, Steven Penny wrote:
> Aren’t both wrong? By definition %i is a signed integer, and size_t is unsigned.
> So %zu or %llu would be more correct:
> 
> http://wikipedia.org/wiki/C_data_types
> 
> They all seem to do the job though:

Correcting myself. Here is why you cannot use %zi:

    $ cat alfa.c
    #define __USE_MINGW_ANSI_STDIO 1
    #include <stdio.h>
    int main() {
      printf("%zi %zu %llu\n", __SIZE_MAX__, __SIZE_MAX__, __SIZE_MAX__);
    }

    $ x86_64-w64-mingw32-gcc -o alfa alfa.c

    $ ./alfa
    -1 18446744073709551615 18446744073709551615


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list