#include "add.h"

int main()

{

    int a = add (1, 2);

    return 0;

}


#include "add.h"

int add(int a, int b)

{

    return a+b;

}

에서 전처리과정에서

int add(int a, int b);

int main()

{

    int a = add (1, 2);

    return 0;

}


int add(int a, int b);

int add(int a, int b)

{

    return a+b;

}

로 바뀌고 

main.c, add.c가 각각 main.obj, add.obj로 바뀌는데

여기서 링킹하면

int add(int a, int b);

int main()

{

    int a = add (1, 2);

    return 0;

}


int add(int a, int b);

int add(int a, int b)

{

    return a+b;

}

이런 느낌으로 한파일로 실행파일 되는거임?

아니면 

int main()

{

    int a = add (1, 2);

    return 0;

}


int add(int a, int b)

{

    return a+b;

}

이런데 add(1,2)에서 add함수의 위치를 call하는걸로 다 바뀌나? 


근데 왜 이건 실행 되고

int add(int a, int b);

int add(int a, int b);


int main() {


    return 0;

}

int add(int a, int b)

{

    return a+b;

}

이거는 실행 안되냐

int main() {

    int a;

    int a;

    return 0;

}

??둘다 걍 선언하는거 아닌가?