why code files must have a new line at the end
Each line should be terminated in a newline character, including the last one. Some programs have problems processing the last line of a file if it isn't newline terminated. GCC warns about it not because it can't process the file, but because it has to as part of the standard.