Я немного туманно о правилах деклараций и определений.Различные декларации и определения в C++
У меня есть следующее объявление в funcs.h:
void sumTotalEnrgyAndClush(Protein &A,Protein &B,double ans[2],double enrgyA[18][18],double enrgyB[18][18]);
Обратите внимание, что ANS [2] находится перед enrgyA и Б.
В funcs.cpp файл определение начинается так:
void sumTotalEnrgyAndClush(Protein &A,Protein &B,double enrgyA[18][18],double enrgyB[18][18],double ans[2])
Он скомпилирует (через makefile) и отлично работает.
Я также заметил, что если я удалю объявление, компилятор, похоже, справится просто отлично.
Почему не происходит изменение порядка аргументов? Это то, что последние 3 элемента - все указатели, поэтому разница в порядке не имеет значения?
Возможный дубликат [В чем разница между определением и декларацией?] (Http://stackoverflow.com/questions/1410563/what-is-the-difference-between-a-definition-and-a- декларация) – sbi
Не дубликат; на самом деле интересный вопрос. –
изменение на порядок *. * Пункт. EDIT: Джеймс Макнеллис сказал, что это лучше в его ответе. –