목록jargon (2)
살아가는 이야기
scanf 함수에서 %n 형식 지정자가 있다. %n은 읽은 문자 개수를 리턴하는 기능이다. 예를 들어서 int 변수 n과 x에 대해 다음과 같이 scanf를 호출했다고 하자. scanf("%d%n", &n, &x); 표준 입력으로 1을 입력했다면 n은 1, x는 1이 되지만 12를 입력했다면 n은 12, x는 2가 된다. %d는 부호도 판별한다. 따라서 +1을 입력했다면 n은 1이 되지만 x는 2가 된다. 형식문자열 지정자 %n은 sscanf에서 진가를 발휘한다. sscanf는 문자열을 입력 스트림으로 간주하여 scanf를 수행한다. 그런데 같은 문자열에 대해 sscanf를 반복하여 사용하려면 scan 시작 지점을 변경해 주어야 한다. 따라서 %n으로 받은 값만큼 시작 지점을 이동시키면 된다. 다음 예를..
'기작'이란 말의 '기'는 '기계'라는 단어의 '기'와 같고 '작'은 '작동하다'라는 단어의 '작'과 같다. 결국 "기계작동"을 의미하는데, 우리가 잘 쓰는 외래어 '메커니즘(mechanism)'을 나타낸다. 지금은 어디서 보았는지 잘 기억나지 않지만, '기작'이란 말은 일본어에서 유래된 한자어라는 글을 본 적이 있다. 이것을 모를 때는 어린 마음에 외래어 '메커니즘'보다 '기작'이란 단어를 선호했었는데, 일본어에서 유래된 한자어라는 것을 알고 난 후에는 차라리 '메커니즘'이라는 말을 선호하게 되었다. 36년은 분명 짧은 기간은 아니다. 그러나 사실을 알고 난 후에는 되돌려야 하지 않을까? 우리 후손들에게까지 수치심을 물려줄 수는 없는 일이다.