반응형
예전에 이런 유머(?)글을 봤다.
반복문 (for문) 멋지게 사용하는 방법
for(int i = 0 ; i < 10; i++) //이렇게 쓰지 말고
int i;
for( i = 0 ; i < 10; ++i) // 이렇게 사용 할 것
(대충 머 이렇게 써야 고수같다는 내용의 유머)
for문 중 변경된 내용은 두가지 이다.
1. 증감식의 후위연산자 를 전위연산자 로 수정
2. 초기식 선언 위치를 반복문 안에서 반복문 밖으로 수정
당시 본인은 이 글의 웃음포인트를 알 수 없었다.
전위연산자가 성능상의 이점이 있다는건 알겠는데
왜 초기식을 for 블럭 외부에 선언하는걸까? 라는 의문이 있었다.
그렇게 잊고 지내던 중... 이번에 우연히 그 의문에 대한 답을 알게되었는데,
결론은 컴파일러 버전 문제였다.
for 내부에서 선언하는 방식은 C99 부터 (1999년 제정된 C언어 표준) 지원한다.
만약 사용하는 컴파일러가 해당 문법을 지원하지 않는 낮은 버전이라면,
(따로 컴파일 옵션을 주지 않는 이상) 컴파일 에러가 발생한다.
그 때 그 글의 웃음포인트는
C99 방식을 지원하지 않는 컴파일러를 사용하던 시절부터 코딩을 했다거나,
컴파일러 히스토리를 알고 버전도 고려하여 방어적으로 코딩하는 습관을 가졌다는것을 어필하는 동시에 개발 짬 많이먹었다고 티내는 부분이 유머였을까 싶다.
(또는 현재를 받아들이지 못하고 과거에 머무는 꼬장꼬장함이 유머일까 ...)
당시엔 이게 뭔소리인가 싶었는데 우연한 기회에 지금이라도 의미를 알게되어 다행이다.
+ 이 내용을 알 수 있게해주신 분들께 마음으로나마 감사를 드립니다.
반응형
'개발 > C' 카테고리의 다른 글
[c 언어] ArrayList 배열리스트 (0) | 2021.08.08 |
---|---|
[c언어] Linked List 구현 (0) | 2021.08.07 |
최근댓글