В конце файла.
Целью этой формы этого #ifndef
шаблона является предотвращение ситуации, когда одно и то же объявление или определение появляется дважды в единице компиляции.
Это сделано потому, что файл C может содержать несколько файлов H, которые где-то в цепочке могут, в свою очередь, включать один и тот же файл. Если вы просто запустите препроцессор без них, у вас будет несколько копий файла H. Таким образом, у вас есть несколько копий, но препроцессор игнорирует все после первого обращения.
Поскольку вы не должны определять что-либо более одного раза, если вам нужно поместить определения методов в заголовочный файл, поместите их в #endif
.