"void *p = &&abc;"는 뭘 하는걸까요?


void *p = &&abc;

이런 코드를 봤는데 저게 뭘 하는 건지 모르겠습니다.

포인터를 2중으로 쓴 건 많이 봤는데 &는 주소를 의미하는 거 아닌가요? and연산은 피연산자가 2개 필요하니까 이것도 아니구요.

저건 뭘 하는 코드일까요?

  • 2016년 02월 04일에 작성됨

조회수 222


1 답변


좋아요
0
싫어요
채택취소하기

&&는 gcc extension중에 하나로 "현재 함수에 있는 라벨의 주소"를 알아낼 때 쓰는 함수입니다. 하단에 예제를 첨부해 놓겠습니다

int main(void) {
    void* startp;
s: //라벨 s
    startp = &&s;
    printf("라벨 s의 주소: %p\n", startp);
    return 0;
}

출력 : 라벨 s의 주소: 0x100000f2f

  • 2016년 02월 04일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close