(보충) 최신 gcc에서의 선언문 차이

블로그에 작성중인 c의 경우에는 지금 최신의 주분투와 최신 버전의 gcc를 이용하고 있다. 그러나 작성하는 내용은 이전에 규링이 직접 c를 배울 때 쓰던 책 자료도 참고로 하고 있다. 그러다 보면 요즘과는 차이가 좀 나는 부분이 있는데, 이번에 자료를 만들면서 겪었다.

변수 선언을 할 때, 한번에 특정 변수를 동일한 값으로 취급하여 선언하는 경우가 있다. 이전에 작성한 산술 연산자 글에서의 두번째 예시에 보면 a,b,c,d 네 변수를 차례차례 선언한 수에 c=d=2를 작성하여 c,d를 한번에 2로 지정하였다.%e1%84%89%e1%85%b3%e1%84%8f%e1%85%b3%e1%84%85%e1%85%b5%e1%86%ab%e1%84%89%e1%85%a3%e1%86%ba-2017-02-15-%e1%84%8b%e1%85%a9%e1%84%92%e1%85%ae-4-20-34

근데 c를 오래전부터 짜왔던 분들은 그냥 선언할 때 저 두번째 문장을 확 넣어버리도록 배웠다. 그리고 그 때에는 그대로 했어도 오류가 나지 않았다. 그게 아래에 있는 예시이다.

근데 지금은 이렇게 하면 오류를 낸다.

오류 문장을 보면 d가 선언되지 않았다고 한다. 이게 문제될 것이 뭐냐면서 하는 분들이 있는데, 요즘에는 컴파일러들이 이걸 문제삼는다. 선언을 먼저 함으로써 메모리 할당을 보호하려는 정책인 듯 하다. 자세한 건 찾아봐야 할텐데…;;

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.