I know very little about the internals of compilers. Does the C compiler compile the code line by line(or for example it jumps too)? I read some lines in a book about the difference between an operator and a function and the author says operators are just turned into a sequence of instructions by the compiler, however, in regards to functions it has to "jump". It is strange to me since I thought jumping is something that happens in the runtime and a compiler is only reading the code line by line and is turning each line into an assembly code(even joining function declarations and definitions is postponed until the linking stage). So does the compiler jump?