[C] GCC 확장: 엘비스 연산자
요즈음의 뭇 언어들을 보면 엘비스 연산자(?:) 라는게 있다.
A ?: B
와 같은 표현식에서 A가 null이 아니라면 A를 반환, null이라면 B를 반환하는 표현식을 구성하는 것이다.
C/C++에선 이게 표준엔 없지만, gcc와 clang 확장에선 이걸 지원한다.
다만 좀 불완전하고 쓸모도 별로 없는것같다.
C는 포인터에 대한 자동참조가 안되므로... ?:의 결과값은 주소가 되곤 할 것이다.
그래서 아래의 코드도 주소값 자체를 출력한다.


가짜 null밖에 없는 c답게, 그냥 0이면 다 null로 쳐리한다.


null과 별개로, 초기화하지 않은 변수를 분간하는 기능도 있다.
초기화하지 않은 변수는 null로 처리되는듯하다.


근데 뭐.. 쓸모가 있나 싶다.