Beim Inspektion der Demontage der untenstehenden Funktion,
void * malloc_float_align(size_t n, unsigned int a, float *& dizi)
{
void * adres=NULL;
void * adres2=NULL;
adres=malloc(n*sizeof(float)+a);
size_t adr=(size_t)adres;
size_t adr2=adr+a-(adr&(a-1u));
adres2=(void * ) adr2;
dizi=(float *)adres2;
return adres;
}
Eingebaute Funktionen werden auch bei gesetzter inline
-Optimierungsfahne nicht inlined.
; Linie 26
$LN4:
push rbx
sub rsp, 32 ; 00000020H
; Linie 29
mov ecx, 160 ; 000000a0H
mov rbx, r8
call QWORD PTR __imp_malloc <------dies ist nicht inlined
; Linie 31
mov rcx, rax
; Linie 33
mov rdx, rax
and ecx, 31
sub rdx, rcx
add rdx, 32 ; 00000020H
mov QWORD PTR [rbx], rdx
; Linie 35
add rsp, 32 ; 00000020H
pop rbx
ret 0
Frage: ist dies eine unverzichtbare Eigenschaft von Funktionen wie malloc
? Können wir es irgendwie inline bearbeiten, um es zu inspizieren (oder eine andere Funktion wie strcmp/new/free/delete)? Ist dies verboten?