The object is a binary generated by the compiler after it has processed the source code. It usually stays in a file and then can generate the executable through the process of linkediting.
The object code is a machine code. The compiler generated this machine code.
C does not use Assembly as object code. Some C-specific compiler can generate an assembly code as an intermediate language so that the object code is then generated by an assembler. It’s a compiler implementation detail.
I’ve seen someone using the term for the intermediate language file before the generation of machine code, but I don’t know if this is right, it feels wrong. This intermediate language could be Assembly, but if it generates a source I find it strange to be the object. In this case Assembly would be the target (target) C compiler and Assembly then is the source (source) of the assembler. Then the object code would be the target.
For me object code is almost synonymous with encapsulated machine code in a ready-to-run form after being placed together with other parts in an executable.
In some cases the object code can be grouped into a library. You don’t have an executable yet but you don’t have the sources.
To better understand about assembler and compiler.
Did the answer solve your question? Do you think you can accept it? See [tour] if you don’t know how you do it. This would help a lot to indicate that the solution was useful to you. You can also vote on any question or answer you find useful on the entire site.
– Maniero