What is the difference between native code, machine code and assembly code?
Hi, I am Korean, so my English can be confusing to you.
I read the contents of the link above and I want to know why C build process includes 'assemble' process.
The below is the C build process that I know.
Source file -> Preprocess -> Compile (in this process, assembly code is made) -> Assemble (in this process assembly code is converted to machine code) -> Link -> Executable files (.exe)
I saw 'Timwi' above the link says " Unmanaged code refers to code written in a programming language such as C or C++, which is compiled directly into machine code."
If C or C++ can be compiled directly into machine code, why 'assemble' process is needed? The purpose of including this 'assemble' process is just for debugging? or has important and practical reasons?
Timwi was simplifying the build process.
The point is that C code is typically not compiled to bytecode for a virtual machine, but to native code for your machine. This is "direct" because there's no further processing to be done at run time to make the program runnable, as would typically be used with languages like C# or Java.
There may be a multi-step process, including compiling, assembling, and linking, to achieve that, but the steps in the process aren't important to the point Timwi was making.