019
05.07.2004, 17:56 Uhr
Hans
Library Walker (Operator)
|
Zitat: |
Windalf postete @Hans hab ich auch schon gefragt steht ein bisschen weiter vorne im thread... Argumente die gegen printf sprechen sind performace und typensicherheit....
|
@windalf
hab ich inzwischen auch gesehen, - hab aber erst die Frage gestellt und das den weiteren Thread gelesen... Aber um ehrlich zu sein: Das mit den möglichen Tippfehlern ist mir nicht so ganz klar. Ich denke da eher, das es Speicherplatz- oder Performancegründe sind, die gegen printf() sprechen. Ich weis ja nicht, wie printf intern arbeitet, weil man in den vom compiler erzeugten Assemblerdateien auch nur die Parameterübergabe und ein call printf findet:
Code: |
DGROUP group _BSS,_DATA _TEXT segment dword public use32 'CODE' _main proc near ?live1@0: ; ; int main() ; push ebp mov ebp,esp ; ; { ; printf("Hallo, World\n"); ; @1: push offset s@ call _printf pop ecx ; ; ; return 0; ; xor eax,eax ; ; } ; @3: @2: pop ebp ret _main endp _TEXT ends _DATA segment dword public use32 'DATA' s@ label byte ; s@+0: db "Hallo, World",10,0 align 4 _DATA ends _TEXT segment dword public use32 'CODE' _TEXT ends
|
. Aber wenn er den kompletten Parser für den Formatstring mit in das fertige Programm packt, und nicht nur jene Teile, die es benötigt, dann dürfte ein ganz schöner Overhead entstehen. Und das könnte sich dann auch auf die Geschwindigkeit auswirken...
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |