printf 는 C 언의 대표적인 표준 출력 라이브러리 함수입니다. 모아콘에서는 디버그용도로 사용합니다. Printf 실행결과는 모아콘스튜디오의 디버그창에 표시됩니다.
printf 단순하게 “ ”로 둘러쌓인 문자열을 출력할수도 있고, 어떠한 수치를 일정한 포맷으로 바꾸어 출력할 수도 있습니다.
포맷 문자열은 %로 시작되는데, 변수 a 의 값을 10 진으로 표시하려면 다음과 같이 하면 됩니다.
printf(“a = %d”, a);
여러 개의 포맷문자열을 포함하고 있는 경우에는 뒤에 나열된 변수(또는 상수)가 차례대로 적용됩니다.
여기에서 %d 가 10 진 출력을 위한 포맷 문자열입니다. 이외에도 다음 표와 같이 여러가지 포맷 문자열이 있습니다.
%4d 와 같이 %와 d 사이에 숫자를 넣으면, 출력 칸수를 지정할 수도 있습니다. 맨앞에 0 을 붙이면 남는 공백을 0 으로 채웁니다. 다음은 printf 사용예입니다.
int x=345; float y=34.564; printf("%10d₩r₩n",x); /*x 를 10 자리에 맞추어 출력한다. */ printf("%-10d₩r₩n",x); /*x 를 10 자리에 맞추어 출력하고 출력방향을 왼쪽에 맞춘다. */ printf("%010d₩r₩n",x); /*x 를 10 자리에 맞추어 출력하고 남는 공백을 0 으로 채운다. */ printf("%.2f₩r₩n",y); /*y 를 소수점 이하 2 자리로 출력한다. */
%다음에 –를 넣으면 왼쪽 자리맞춤으로 표시됩니다. 주로 출력칸수와 함께 사용합니다. %-10d (정수 d 가 1989 일경우) 결과는 1989bbbbbb (공백을 b 로 표시)가 됩니다. *실수표시를 위한 %e 와 %f 의 경우, 전체자릿수 제한 표시가 적용되지 않습니다. (%10f 로 해도 전체 표시자릿수를 10 자리로 제한할 수 없습니다. 소수값 그 자체가 표시됩니다. 단 %.2f 와 같이 소수점 아래로 표시제한은 할 수 있습니다. ) 위에 나열한 포맷문자열은 기타 다른 print 함수에서도 사용가능합니다. (clcdPrint, comPrint, netPrint, csgPrint 등)
while(1) { clcdPrint(1,0,"%d",i++); clcdPrint(1,1,"%.2f",j = j * 1.23); clcdPrint(3,2,"%6X",i); clcdPrint(4,3,"Technology"); clcdPrint(10,0,"%2x %2x",rtcRead(0),rtcRead(1)); delay(200); }
MOACON 에서는 기본적인 디버깅 방법으로 디버그 터미널을 사용합니다. 즉, 프로그램 실행중 변수값의 변화상태를 디버그터미널에 표시하는 방법으로 디버깅을 수행합니다.
소스프로그램중 printf 함수를 삽입하면, 실행 결과는 MOACON STUDIO 에 있는 디버그 터미널에 표시됩니다.
디버그 터미널을 콘트롤하기 위한 추가적인 함수도 있습니다.
debugCls( ); // 디버그 터미널을 클리어합니다. debugLocate( x, y ); // 표시위치를 지정합니다.(x, y 는 0 부터 시작) debugPut(ch); // 디버그 터미널로 1 바이트(ch)를 전송합니다.