Ich wollte deine Frage niocht so im Raum stehen lassen .... ist keine DIN Norm.
makro: praeprozessoranweiseung die *vor* dem compilieren in maschienencode umgewandelt wird
Ein Makro wird einfach in den Code durch den Präcompiler in deinen Code einfach eingefügt, jedoch ist das noch Hochsprachen Code, also C/C++ etc.
template: wird beim compilieren in funktionen mit unterschiedlichen parameter-typen umgewandelt (der code existiert mehrmals)
templates sind Schablonen, man erstellt neue Objekte / Klassen etc. indem man diesen Schablonen füllt.
methode: alles was "normal" compiliert wird
Falsch. Der Begriff Methode kommt aus dem objekt oritenierten Programmieren. Man wollte sich dort von dem C "Slang" abheben und diese Unterschiede deutlich machen, dewegen spricht man oft auch von Objekten, Methoden etc. Methoden sind aber eigentlich nur Funktionen, die zu einer Klasse/Objekt gehören.
prozedur: eine methode ohne rueckgabewert
Eine Funktion, ohne Rückgabewert. Im Pascal waren Prozeduren und Funktionen etwas anderes, dort gab es das schlüsselwort procedure. Heutzutage werden Prozeduren oft auch als Funktionen bezeichnet.
funktion: eine methode mit rueckgabewert
Eine Funktion ist eine "Berechnungseinheit" mit Rückgabewert, oft auch als "Unterprogramm" bezeichnet, wobei ich diese Bezeichnung nicht so toll finde.