• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

글로벌 선언? 전역선언? 을 하니까 함수 포인터의 fn 까지는 잘 되는데 그이후가 안되네요

21.11.27 12:00 작성 조회수 106

0

int sub(int a, int b)

{

return  a + b;

}

 

 

typedef int(Fanc_sub)(int, int);

Fanc_sub* fn;

fn = sub;

int main()

{

int c = fn(1, 2);

cout << c << endl;

return 0;

}

 

mine 실행부분 안쪽에 넣어놓지 않고 그 외부에 선언을 하니까 저 빨간부분이 작동을 하지 않는데 왜 그러는걸까요 ㅠㅠ 느낌상 메인함수안에서 무언가가 작동해야 되는데 스택 메모리 관련된 부분인가요? 

 

딱 저부분에만 빨간줄이 처지고  형식 지정지가  없다고 나옵니다

 

뭣때문에 저부분에서는 안되는걸까요 ㅠㅠ

답변 2

·

답변을 작성해보세요.

0

실행이 되야 되는거였는게 키포인트였군요 감사합니다 뭔가 이상해서 한참고민했었네요

0

'선언'만 하는 것이 아니라, 진짜 무엇인가 '실행되는' 코드는
함수 내부에 넣어놔야 실행됩니다.

Fanc_sub* fn = sub;

이렇게 선언과 동시에 초기화하는 특수 문법 상황이 아니라면,
fn = sub 는 fn에다가 sub를 대입하는 것이니
main이든 다른 함수이든 어딘가에 넣어놔야 합니다.