C - gcc: keine Compilerwarnung bei abweichender Funktionsdeklaration / Implementierung
Ich versuche herauszufinden, warum mein C-Compiler mir keine Warnung / Fehler mit folgendem (vereinfachtem) Code ausgibt.
Die Funktionsdeklaration hat keine Parameter, während die Funktionsimplementierung Parameter hat:
some.h:
void foo();
some.c:
static uint32_t count = 0;
void foo(uint32_t num) {
count += num;
print("Count: %u");
}
Haupt c
foo(100);
foo();
Ausgabe
Count: 100
Count: 100
Compiler für Zielerstellung:
gcc-arm-none-eabi-4_9-2015q1-20150306-win32
Linker für Zielerstellung:
gcc-arm-none-eabi-4_9-2015q1-20150306-win32
Compiler-Flags:
-Wall -Werror -DuECC_CURVE=uECC_secp256r1 -DMEMORY_CHECK -DDEBUG -Os -g3 -DBACKTRACE