Why isn’t a function prototype instantiated, when a variable declaration is? [duplicate]

  c++, declaration, instantiation

Consider the following,

void doNothing(int,int); // Only declared

int main(){
    int x; // Both defined and declared
    return 0;

Why is it that when a function prototype is declared, it is not also instantiated in memory, but variable x is?

I understand clearly the difference between a definition and a declaration, I just want to know why it is C++ chooses not to instantiate the function prototype, while it does choose to instantiate variable x which in this example, also holds no value.

Source: Windows Questions C++