postfix exp와 exp의 치환구문은 C언어만 지원된다. 예를 들어 k=j [5];와 k=5 [j]는 같은 역할을 수행하는 구문. 단, j는 배열이나 포인터일때만
코로모(112.151)2015-04-19 00:07
auto 구문이나 반환타입생략 같은거
코로모(112.151)2015-04-19 00:12
포인터 타입에서 C는 void * 포인터 값을 다른 포인터 타입의 변수에 대입할 때 묵시적 형 변환이 일어나서 캐스팅할 필요가 없었지만(예: malloc 함수의 반환 값은 캐스팅할 필요가 없음) C++은 무조건 캐스팅해야 됨. 즉 C++에서 malloc 쓰면 캐스팅해 줘야 된다.
더블릿 제출할때 C는 헤더 안 써도 되는데 C++은 써야되더라
postfix exp와 exp의 치환구문은 C언어만 지원된다. 예를 들어 k=j [5];와 k=5 [j]는 같은 역할을 수행하는 구문. 단, j는 배열이나 포인터일때만
auto 구문이나 반환타입생략 같은거
포인터 타입에서 C는 void * 포인터 값을 다른 포인터 타입의 변수에 대입할 때 묵시적 형 변환이 일어나서 캐스팅할 필요가 없었지만(예: malloc 함수의 반환 값은 캐스팅할 필요가 없음) C++은 무조건 캐스팅해야 됨. 즉 C++에서 malloc 쓰면 캐스팅해 줘야 된다.
ㅇㅇ // 뭐래...
코로모 // 소설 쓰고 앉아 있네. 배열 첨자([]) 신택스 슈거(syntactic sugar)는 C++에서도 유효하다.
https://ideone.com/TekNYB
결론은 C++는 못하는데 C에서는 되는 문법 요소는 없다고 봐도 무방하다. C++와서 좀 더 까다로워진 것은 있어도 없어진 것은 없다.
ㄴ되네. 최근에 추가됐나?
https://ideone.com/1Y97xk
원래 되던거야. #define offsetof(__s_name, __m_name) (_SIZE_T)&(((__s_name _FAR *)0)->__m_name)
ㅇㅇ // 아니 원래 됐었어.
http://s27.postimg.org/3mln9f08j/Turbo_C3_0.png
스샷은 Turbo C++ 3.0에서 확장자 .cpp로 해서 C++ 모드로 컴파일한 스샷. (초창기 C++라 헤더 인클루드할 때 #include <iostream.h> 잼)
또 뭐 보여줄까. Visual C++ 2010 / g++에서는 되는 걸 직접 확인해 봤고 g++는 ideone.com 사이트로 보여줬는데. Visual C++ 6.0도 보여주리?
ㅅㅅㅅ는 왜 흥분해;; 그냥 물어본건데 모르는 문법이라서.
g++에서 C++98 모드로 컴파일해 봐도 잘 된다. 이로써 코로모, ㅇㅇ가 말한 게 소설이라는 거 입증 완료.
http://s14.postimg.org/4gocrjm01/gpp.png
모르는 문법이면 모르는 문법이라고 해야지 "최근에 추가 됐나?"는 또 뭐임. 표면적으로 코로모 의견에 찬동하는 것처럼 보이잖아
뭔 뇌내 망상이야. 내가 뭘 말했는데 소설이냐. 최근에 추가됐나? 그 한마디 했는데.
뭘 쓸대없는걸로 열내고 그래.
반환타입생략라는게 묵시적 정수형(implicit int) 말하는거면 C는 되는데 C++은 안되는게 맞음
a[n]을 *(a+n)으로 취급하는건 C나 C++이나 똑같음 물론 []연산자를 재정의하는 경우에는 함수인자의 자료형을 검사하므로 안되는거고 그냥 배열이면 똑같이 동작함
auto키워드는 C++11에서부터 자료형추론기능으로 의미가 변한거라 C++98까지는 그냥 C와 똑같음 아무도 안쓰던 죽어있던 예약어에 새생명을 부여한거라 보면 됨