clang is a better compiler, unfortunately gcc supports a lot more embedded CPUs
compile with debugging and no optimization, -ansi sets it to C90, pedantic-errors rejects gcc non-standard C extensions
gcc -g -O0 -ansi -pedantic-errors -Wall -Wextra -o filename filename.c
release build with optimization
gcc -O3 -ansi -pedantic-errors -Wall -Wextra -o filename filename.c