Ich bin ein wenig verschwommen auf die Regeln der Deklarationen vs. Definitionen.Andere Deklaration und Definition in C++
Ich habe die folgende Erklärung in funcs.h:
void sumTotalEnrgyAndClush(Protein &A,Protein &B,double ans[2],double enrgyA[18][18],double enrgyB[18][18]);
Beachten Sie, dass ans [2] ist vor enrgyA und B.
Im funcs.cpp die Definition dieser beginnt wie file:
void sumTotalEnrgyAndClush(Protein &A,Protein &B,double enrgyA[18][18],double enrgyB[18][18],double ans[2])
Es kompiliert (über Makefile) und funktioniert gut.
Ich bemerkte auch, dass, wenn ich die Deklaration entferne der Compiler scheint gut zu verwalten.
Warum ist die Änderung in der Reihenfolge der Argumente nicht wichtig? Ist es, dass die letzten 3 Punkte alle Zeiger sind, so dass der Unterschied in der Reihenfolge keine Rolle spielt?
möglich Duplikat von [Was ist der Unterschied zwischen einer Definition und einer Deklaration?] (Http://stackoverflow.com/questions/1410563/what-ist-the-difference-between-a-definition-anda-a- Erklärung) – sbi
Kein Duplikat; eigentlich eine interessante Frage. –
Die Änderung in der Reihenfolge * ist * wichtig. EDIT: James McNellis sagte es besser in seiner Antwort. –