[C] void* 포인터

2025. 8. 4. 00:28·소프트웨어/C

전문가를 위한 C 책을 보다가, 다음과 같은 함수를 만났다.

 

void* thread_body(void* arg){
	printf("Hello from first thread!");
    return NULL;
}

음... 이전에 void형 포인터를 공부한 적이 있었는데 까먹었다.. 이참에 확실히 정리해두고자 한다.

 

 

int a = 10;
int* b = &a;

이 코드를 말로 풀어 설명하면 "b는 a의 주소를 저장하는데, 그 주소에는 int형 데이터가 있다." 이다. 맞는 말이다.

int a=10;
void* b=&a;

이번엔 이 코드를 풀어 설명하면 "b는 a의 주소를 저장하는데, 그 주소에는 void형 데이터가 있다." 이다.

그런데... void는 값이 없음을 의미하는 심볼이 아니던가? 컴퓨터는 자료형을 모르기 때문에 아무것도 없는 것처럼 보는 것 이라고 한다.(출처) 

이를 다시 표현하면 "b는 a의 주소를 저장하는데, 그 주소에는 알 수 없는 자료형의 데이터가 있다..." 가 된다.

 

void형 포인터를 사용하려면 원본 변수의 자료형으로 캐스팅을 해주면 된다.

printf("%d", *b); 		// ERROR!
printf("%d", *(int*)b); 	// works!

 

 

그렇다면 다시, 처음의 이 함수는

void* thread_body(void* arg){
	printf("Hello from first thread!");
    return NULL;
}

알 수 없는 자료형을 가리키는 포인터 arg를 받아 어찌어찌 처리한 후, 알 수 없는 자료형 포인터(여기선 NULL)을 반환한다는 뜻이다!

 

 

 

reference https://reakwon.tistory.com/19

'소프트웨어 > C' 카테고리의 다른 글

[C] 매크로 함수  (0) 2025.11.20
[C언어] const 키워드  (0) 2025.08.24
[C] 헤더파일에 대하여  (0) 2025.08.02
[C] C언어의 extern 키워드  (0) 2025.07.30
[C] C의 파일시스템, fopen_s()  (0) 2025.07.24
'소프트웨어/C' 카테고리의 다른 글
  • [C] 매크로 함수
  • [C언어] const 키워드
  • [C] 헤더파일에 대하여
  • [C] C언어의 extern 키워드
jh-rrr
jh-rrr
기술의 깊이에 집중하며 성장하길 지향합니다.
  • jh-rrr
    Embedded World
    jh-rrr
  • 전체
    오늘
    어제
    • 분류 전체보기 (64)
      • 소프트웨어 (17)
        • 프로그래밍 (2)
        • C (10)
        • Python (1)
        • 운영체제 (3)
        • 네트워크 (0)
      • Embedded Systems (16)
        • 리눅스 (10)
        • MCU 기본 (2)
        • 임베디드 레시피 (0)
      • Projects (1)
        • Cortex-M3 (1)
        • 재난 구조 로봇 (0)
      • AI (11)
        • Computer Vision (2)
        • Deep Learning (3)
        • cs224n (2)
        • cs231n (2)
      • 취업 준비 (0)
        • 프로젝트 & 자격증 (1)
      • 엔지니어링 뉴스 (3)
      • Paper Reviews (4)
      • Insights (8)
        • Seminar ! (2)
        • 서평 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    커널 이미지란
    stm32f 시리즈를 이용한 arm cortex-m3/m4 구조와 응용
    kernel image 란
    일귀
    커널 이미지
    essential deep learning paper reading
    리눅스
    리눅스 오류
    conda: command not found
    OS 이미지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jh-rrr
[C] void* 포인터
상단으로

티스토리툴바