I put together a simple CP/M emulator here:
https://github.com/skx/cpmulator/
Alongside that there is a collection of CP/M binaries, including the Aztec C compiler:
https://github.com/skx/cpm-dist/
So you can easily have a stab at compiling code. I added a simple file-manager, in C, along with other sources, to give a useful demo. (Of course I spend more time writing code in Z80 assembler, or Turbo Pascal, rather than C).
The author has a followup post here for thos interested:
* Getting back into C programming for CP/M -- part 2 * https://kevinboone.me/cpm-c2.html