Download Pelles C here: http://www.pellesc.se
Quote from: ander_cc on March 15, 2026, 11:30:22 AM#include <stdio.h>gcc 11.4 -std=c23
#include <stdbit.h>
int main() {
unsigned short a1 = 4;
unsigned int a2 = 4;
printf("a1 one:%u a1 zero:%u\n", stdc_first_leading_one(a1), stdc_first_leading_zero(a1));
printf("a2 one:%u a2 zero:%u\n", stdc_first_leading_one(a2), stdc_first_leading_zero(a2));
return 0;
}
a1 one:14 a1 zero:1
a2 one:30 a2 zero:1
-----
pelles c 13.01
a1 one:3 a1 zero:16
a2 one:3 a2 zero:32
-----
WHY? and which is right?
\PellesC\bin\poasm /AIA32 StrLen.asm
\PellesC\bin\poasm /AIA32 StdOut.asm
\PellesC\bin\poasm /AIA32 Sample.asm
C:\msys64\mingw32\i686-w64-mingw32\bin\ld -r -m i386pe -o Modules.obj StdOut.obj StrLen.obj
C:\Masm64\bin64\link /SUBSYSTEM:CONSOLE /LIBPATH:\PellesC\Lib\Win Sample.obj Modules.obj kernel32.lib user32.libExitProcess PROTO :QWORD
printf PROTO :QWORD,:VARARG
BurstSortStrings PROTO :QWORD,:QWORD,:QWORD
.data
s1 db 'lemon',0
s2 db 'apple',0
s3 db 'orange',0
s4 db 'banana',0
frmt db '%s',13,10,0
strtabl dq OFFSET s1,OFFSET s2,OFFSET s3,OFFSET s4
.code
start:
sub rsp,8+4*8
call main
invoke ExitProcess,0
main PROC USES rsi rbx PARMAREA=4*SIZEOF QWORD
invoke BurstSortStrings,ADDR strtabl,4,0
mov rbx,4
mov rsi,OFFSET strtabl
@@:
invoke printf,ADDR frmt,QWORD PTR [rsi]
add rsi,SIZEOF QWORD
dec rbx
jnz @b
ret
main ENDP
END start
Page created in 0.022 seconds with 11 queries.