검수요청.png검수요청.png

"Void"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(개요)
31번째 줄: 31번째 줄:
  
 
== 참고자료 ==
 
== 참고자료 ==
 +
*SnowL, 〈[https://studyc.tistory.com/21 초보자를 위한 기초 C 언어 강좌 #17 : 함수]〉, 《티스토리》, 2016-08-18
 +
*SLL, 〈[https://m.blog.naver.com/mint3081/221611187046 (C언어) int main, void main, main의 차이점/ main 함수의 파라미터]〉, 《네이버블로그》, 2015-10-06
 +
*천프로, 〈[https://blog.naver.com/sharonichoya/220501081810 C언어 void 포인터(void*)]〉, 《네이버블로그》, 2019-08-09
 +
 
== 같이 보기 ==
 
== 같이 보기 ==
 +
 
{{프로그래밍|검토 필요}}
 
{{프로그래밍|검토 필요}}

2021년 7월 30일 (금) 16:25 판

void(보이드) 는 리턴(return) 되는 타입이 없음을 의미한다. 즉 아무것도 리턴하지 않음을 선언해주는 것과 같다.

개요

함수의 반환값이 없을때는 void 라고 붙여주면 된다. 이 void라는 것은 '무치형' 이라고 하는 자료형으로, 아무것도 없다는 것을 명시해줄때 사용한다.

  • 예시1
void output(void);
  • 예시2
 public void test() {
   siteurl = 'webisfree.com';
 }
  • 예시3
 public string getUrl() {
   return 'webisfree.com';
 }

위에 예시1 처럼 output()은 인자도 없고 반환값도 없는 함수로 선언되었으며 이런 형식으로 굉장히 자주 선언하게 된다. 하지만 void가 포인터가 된다면 뜻이 정반대로 바뀌게 된다. 또한 예시2 함수 test()는 void로 리턴타입을 선언하였다. 만약 리턴타입이 다르다면 실제 함수의 리턴값도 동일해야하며 예시3은 string이므로 문자열을 리턴해야한다.

char k = 'B';
int n = 5;
void *p = NULL;

p = (void*) &k;
p = (void*) &n;

위의 예시에서 어떤 포인트건 간에 void*로 형전환을 시켜준다면 모두 넣을 수가 있는, 어찌보면 만능 포인터가 되어버린다. 어떤 자료형이든 주소는 4바이트로 동일하기 때문에 이와 같은 일이 가능하다.[1]

종류

  • 보이드 메인(void main) : C언어를 하다보면 int main으로 선언하는 사람도 있고 void main으로 선언하는 사람도 있다. 이 둘의 차이는 'return값이 존재하느냐 존재하지 않느냐'의 차이 밖에 없다. 이는 main함수라는 말에서 이유를 알아낼 수 있다. 본래 함수란 return값을 가지고 쓰는 것이 정석과도 같지만 a라는 숫자와 b라는 숫자를 더하는 함수를 만들었다고 가정한다면, 이 함수는 printf()로 a+b값을 찍어내는 것이 아닌 return a+b로 값을 넘겨주는 것이 함수를 쓸 때 올바르게 사용했다고 할 수 있는 것이다.[2]
  • 보이드 포인터(void point) : 보이트 포인터는 포인터이다. 포인터는 변수이며 주소값을 갖는 변수이다. 따라서 void포인터도 주소값을 담는 변수이다. int포인터는 int형 변수의 주소를 저장한고 void포인터는 어떤 타입으로든 형변환이 가능하다.[3]

각주

  1. SnowL, 〈초보자를 위한 기초 C 언어 강좌 #17 : 함수〉, 《티스토리》, 2016-08-18
  2. SLL, 〈(C언어) int main, void main, main의 차이점/ main 함수의 파라미터〉, 《네이버블로그》, 2015-10-06
  3. 천프로, 〈C언어 void 포인터(void*)〉, 《네이버블로그》, 2019-08-09

참고자료

같이 보기

  검수요청.png검수요청.png 이 Void 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.