강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của kimsc
kimsc

câu hỏi đã được viết

Từ giới thiệu về lập trình socket Windows đến các máy chủ hiệu suất cao!

Máy chủ Echo đa luồng (có ví dụ)

강사님 질문 드립니다.

Đã giải quyết

Viết

·

241

·

Đã chỉnh sửa

0

 제공해주신 멀티스레드 소켓 프로그램에 LPVOID 형을 가지는 매개변수에 일반 변수를 지정하셨는데

 

LPVOID 는 포인터와 일반변수 모두 가능 한 건지요?

주신 프로그램을 보면

 

SOCKET hClient = 0; // SOCKET 형 변수를 선언

hThread = ::CreateThread( NULL, 0,

ThreadFunction, (LPVOID)hClient, // 주소가 아닌 값을 지정

0, &dwThreadID);

 

만약 가능하다면 내부적으로 어떻게 가능한지 확인 부탁드려봅니다. 늘 좋은 강의 감사합니다. 강사님

socket.ioudpiocptcpip

Câu trả lời 1

0

nullnull8537님의 프로필 이미지
nullnull8537
Người chia sẻ kiến thức

LPVOID는 void* 형 입니다. 그리고 이는 포인터 변수라는 의미로 일반화 할 수 있습니다. 나아가 메모리 주소 하나를 저장할 수 있는 크기를 갖는 메모리 공간으로 볼 수 있습니다. 여기에 주소를 담을 목적으로 선언된 것이지만 이것을 다른 정보를 저장하는 용도로 전용한다 하더라도 C/C++에서는 문제가 되지 않습니다.

애초 국을 담아 먹을 용도로 만들어진 국그릇(형식)을 밥을 담는 용도로 전용(강제 형변환)한다고 해서 큰일이 나지 않고 예의(문법)에 어긋나지 않는 것이라면 허용합니다. 이런 개념을 쉽게 '자유도가 높다'라고 할 수 있겠습니다. 참고하시기 바랍니다. 😄

Hình ảnh hồ sơ của kimsc
kimsc

câu hỏi đã được viết

Đặt câu hỏi