Das sind komplett äquivalente Deklarationen, da zum einen extern implizit verwendet wird, d.h. man bekommt "extern" bei einer Funktionsdeklaration ohne es explizit hinschreiben zu müssen. Die Setzung des Sterns ist eine stylistische Frage und keine semantische (auch wenn es da heiße C vs. C++ Debatten gibt *g*). Das Weglassen des Argumentnamens würde ich aber als unpraktisch ansehen, da man dann zum einen den Parameter nicht über doxygen dokumentieren kann und zum anderen bei modernen IDEs automatisch wenn man zB "strlen(" schreibt einem die Typen und Namen der Parameter angezeigt werden und man am Namen der Parameter gleich erkennt wie die Funktion zu verwenden ist. Beispiel: Wenn ich ein strcpy(char *dest, const char *src) habe und mir wird das angezeigt, dann ist klar(er) von wo nach wo kopiert wird.