Question: I noticed it some Objective-C projects some of the files that use a significant amount of C functions, store the code in `.c` files instead of `.m`. I know `.m` is for Objective-C and `.c` is for C but is there any benefit to using `.c` over `.m` when you can? Is there a performance increase or complication benefit? Would GCC or clang compile equivalent code differently in each?

Answer: 
The primary benefit is that .c files can be used as-is in normal C programs and you know they won't accidentally incorporate Objective-C constructs that render them incompatible.
Besides everything else, .c is good for cross platform development. The overhead of porting it from one platform to another is very low or almost negligible. . And mostly the backend or the model of an application is developed using "C" where performance is required and you need a direct interaction with the machine. Such as interaction with hardware and stuff.