[Python-de] urllib2 und tarfile
Olе Streicher
ole-usenet-spam at gmx.net
Sa Mär 16 14:54:58 CET 2013
Marek Kubica <marek at xivilization.net> writes:
> To: Ole Streicher <ole-usenet-10 at gmx.net>
> Cc: python-de at python.org, ole-usenet-spam at gmx.net
Sag mal, warum schickst Du mir das alles noch an alle möglichen
E-Mail-Adressen? Ich lese im Usenet; da brauche ich keine Kopien per
persönlicher Mail.
> ole-usenet-spam at gmx.net (Olе Streicher) wrote:
>> Da Prototypen optional sind, muss der Compiler auch ohne diese
>> Unterstützung passenden Binärcode erzeugen können.
> Das stimmt nicht. Den Fall hatte ich letztens, denn zumindest GCC kann
> das Binärlayout nur inferieren wenn du direkt eine Funktion aufrufst,
> aus den übergebenen Parametern. Und das klappt auch nur wenn deine
> Parameter richtig sind und mit den eigentlichen Parametern
> übereinstimmen.
Natürlich müssen die Parameter richtig sein und mit den eigentlichen
übereinstimmen. Aber dafür schreibt man ja schließlich Tests bzw. schaut
im Quelltext.
> Wo es nicht klappt ist wenn du eine Funktion als Callback angibst.
Hast Du ein konkretes Beispiel? Man kann auch in K&R C (also ohne
Prototypen) Signalhandler definieren und setzen.
Und folgendes funktioniert ebenfalls:
----------------8<-------------------
#include <stdio.h>
extern foo();
int main()
{
return bar(foo, 12);
}
bar(func, x)
double (*func)();
int x;
{
return func(x);
}
foo(x)
int x;
{
return printf("foo: %i\n", x);
}
----------------8<-------------------
Alles ohne Prototypen. Und auch, wenn ich das in drei Einzeldateien
zerlege. Und mit dem gcc.
Also Butter bei die Fische: welches konkrete Beispiel hast Du
anzubieten, bei dem Prototypen *technisch* erforderlich sind und nicht
nur statischen Typtests durch den Compiler dienen (und darum -- nach der
hier zelebrierten Python-Philosphie -- unsinnig sind)?
Ole
Mehr Informationen über die Mailingliste python-de