Q:

Why does a C program consisting of one source file still need the linking phase?

Why is a linking phase needed?
If I have this program
#include <stdio.h>
#include <math.h>

int main(){
    float c=pow(8,5.6);
    printf(" Result =%f",c);
    return 0;
}

I guess it needs to perform the linker phase for the library Math.h?

A:

Even if you don't use any functions, the program still needs to be linked with the standard C runtime library. This provides the wrapper code that calls main(), and calls exit() when the main() function returns.

