Ich stell mich etwas blöd an, aber wie nutze ich die obigen Codeschnipsel bitte?

Bisheriges erfolgloses Vorgehen:

Ich hab eine "mem-check.h" in "/utils" abgelegt und binde sie wie die twi.h in mein Programm ein, also..

#include <util/mem-check.h>

mem-check.h:
Code:
#ifndef _MEM_CHECK_H_
#define _MEM_CHECK_H_

extern unsigned short get_mem_unused (void);

#endif /* _MEM_CHECK_H_ */
und dann hab ich den anderen 'mem-check.c'-CODE in mein Programm kopiert vor die ganzen ISR's und nach den globalen Variablendeklarationen.

Das Programm wird schon immer mit -Os compiliert, also sollte ich die "Forderung" nach optimierter Übersetzung erfüllen, oder?

Das Problem ist nun eine Fehlermeldung während des compilierens, bei dem es die Art, wie ich die get-mem-unused aufrufe moniert.
Ich rufe die Funktion folgendermassen auf:

volatile uint8_t test=0;

..

test = get-mem-unused;


Fehlermeldung:
error: invalid arguments to binary

Was mach ich falsch?

Danke & Grüße
0tes_Gesetz