-
Notifications
You must be signed in to change notification settings - Fork 10
/
0012.txt
5 lines (3 loc) · 1.79 KB
/
0012.txt
1
2
3
4
5
오늘 얘기할 거는 널 포인터(null pointer)를 얘기하려고 해요. 오래전에 C++에서 널 포인터(null pointer) 같은 거 만들어 줄 때는 보통 포인터 변수에 0을 대입한다던가 아니면 윈도우에서는 NULL을 집어넣어 주든가 그랬잖아요?
윈도우에서 #define 된 거 보시면, 그게 숫자 0을 대입하는 게 전부인데 이게 왜 사람들이 문제가 있었는지 솔직히 모르겠어요. NULL 같은 경우는 다른 플랫폼으로 포팅(porting)할 때 문제가 생길 수 있는 건 있지만, 저는 개인적으로는 숫자 0을 쓰나 안 쓰나 별 차이는 없다고 보거든요.
이번에 새로 나왔던 표준(C++11)에는 어떻게 된 거냐면 포인터에 0을 대입하는 대신에, 따로 대입할 수 있는, 이게 nullptr이라고 대입할 수 있는 그런 키워드가 나온 거예요. 이미 C# 쓰셨던 분들은 아시겠지만 C# 같은 경우에는 객체(object)를 처음 만들고 그냥 null 같은 걸로 대입해주려고 할 때 그냥 " = null" 하면은 들어가거든요 거기서 가져왔던 것 같고 이게 굳이 왜 바꿔야 되는지는 모르겠지만... 저는 일단 바꿨어요. 숫자 0이나 대문자 NULL 쓰는 방법이 이 새로운 방법보다 나은 방법도 아니었고 새로운 방법은 그냥 코드를 읽을 때 당장 변수의 타입이 뭔지 모르더라도 코드를 읽는 것 만으로 옆에 nullptr 붙어있으면 '아 이거는 포인터구나'라는 걸 쉽게 알 수 있어서 가독성도 더 좋은 것 같아서 저는 바꿨거든요. 그래서 혹시라도 nullptr가 있다는 걸 몰라서 아직도 안 쓰시는 분들은 그냥 뭐 아무 생각 없이 바꾸시면 될 것 같아요. 가독성 높아지는 거만 해도 일단 큰 거니까요.