printf()함수는 기본적으로 첫 번째 인자인 문자열을 화면에 표시해주는 역할을 하는 함수로서 stdio.h 헤더화일에 정의되어 있다. 함수와 헤더화일에 대한 개념은 차후에 설명하도록 하고 여기에서는 기본적인 사용법만 익히고 넘어가도록 하겠다. 이 함수를 사용하기 위해서는 반드시 프로그램 시작 부분에 stdio.h를 인클루드시켜야 한다.

#include <stdio.h>


printf()함수 안에서 변수의 값을 표시하는데 쓰이는 문자를 서식 문자’라고 한다. 변수의 출력에 많이 쓰이는 서식문자를 다음 표에 정리하였다.


[표 1] printf()함수의 서식 문자

구분

서식 문자

출력 형태

정수형

%d

10진수 정수

%x

16진수 정수

%c

문자

실수형

%f

10진수 실수 (float형)

%e

10진수 실수 (지수형 표기)

%lf

10진수 실수 (double형)

문자열

%s

문자열 출력

그리고 앞의 예제에서도 자주 사용되었듯이 ‘\n' 문자는 다음 줄 맨 첫 칸으로 돌아가라는 동작을 수행하게 하는 특수 문자이다. 이와같이 printf()함수 내에서 사용되는 문자 ’\’를 이스케이프(escape)문자라고 한다. 이것을 이용한 몇 가지 자주 사용되는 문자는 다음과 같다.

[표 2] printf()함수의 특수 제어 문자

문자

기능

\n

줄바꿈

\t

수평 탭(tab)

\a

‘삑’하는 beep음을 발생한다.

\\

역슬래시 문자(\) 자체를 표시

\“

따옴표 문자를 표시


한글자판에서는 역슬래시(backward slash)가 원화 기호 ₩로 표시되므로 유의하자.

#include <stdio.h>
int main() {
   char cA = 'A';
   unsigned short usA = 100;
   float fA = 1.5;
   printf("The cA is %c and %d in decimal.\n", cA, cA);
   printf("The usA is \n");
   printf("%d and 0x%x in hexadecimal.\n", usA, usA);
   printf("The fA is %f \n", fA);
   printf("Hello %s.\n", "world!");
}


The cA is A and 65 in decimal.
The usA is 100 and 0x64 in hexadecimal.
The fA is 1.500000
Hello world!.


위의 프로그램에서 usA값의 두 가지 출력 출력값과 문자열을 출력하는 세 번째 printf()함수의 사용법을 눈여겨 보도록 하자.




'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글

C/C++ 자료형 연습문제  (3) 2015.05.24
C/C++ 의 typedef 명령어  (1) 2015.05.24
C/C++ #define 문으로 상수 기호 정의하기  (0) 2015.05.24
C/C++의 구분 기호와 주석  (0) 2015.05.24
1.9 식별자와 예약어  (0) 2015.05.24
Posted by 살레시오
,

 #define은 상수를 이름으로 정의하거나 매크로 함수를 정의할 때 사용하는 전처리문이다. (전처리문이란 컴파일을 수행 하기 전 소스 코드를 변환시켜주는 명령어들을 말한다.)  #define을 잘 활용하면 가독성이 향상된 프로그램을 만들 수 있고 프로그램을 수정하기에 효율적으로 작성할 수 있다. 기본 형식은 다음과 같다.


#define NAME VALUE


NAME은 그 뒤에 있는 숫자를 대신해서 사용할 명칭이다. 맨 끝에 세미콜론(;)이 붙지 않음에 유의하자.

다음 예를 보자.


#include <stdio.h>
#define PI 3.14  // PI를 3.14로 정의
int main() {
   float fR = 3.0;
   printf("radius : %f\n", fR);
   printf("circumference : %f \n", 2*PI*fR);
   printf("area : %f \n", PI*fR*fR);
   printf("volume : %f \n", 4*PI*fR*fR*fR/3);
}


radius : 3.000000
circumference : 18.840000
area : 28.260000
volume : 113.040000


두 번째 줄을 보면 다음과 같이 작성되어 있는데

#define PI 3.14


이것은 3.14라는 실수값을 PI라는 이름으로 사용하겠다는 정의이다. 실제로 프로그램상에서 printf()함수 안에서 사용되었다. 이 코드는 전처리기에 의해서 컴파일 전에 다음과 같이 내부적으로 수정된다.


printf("원의 둘레: %f \n", 2*3.14*fR);
printf("원의 면적: %f \n", 3.14*fR*fR);
printf("구의 체적: %f \n", 4*3.14*fR*fR*fR/3);


따라서 처음부터 직접 위와 같이 작성하나 #define 문을 사용해서 PI라는 기호로 작성하나 내부적으로는 아무런 차이가 없다. 하지만 다른 사람이 볼 때 PI라는 ‘의미를 유추할 수 있는 기호’를 사용하는 것과 3.14라는 숫자를 직접 사용하는 것과는 차이가 있다.


 더 큰 문제는 3.14라는 상수 값을 예를 들어 3.1415로 변경시켜야 할 경우가 발생했을 때이다. 위와 같이 프로그램했을 경우 세 곳을 모두 고쳐야 하지만 #define문을 사용한 경우에는 정의한 곳 한 곳만 고치고 다시 컴파일 해주면 된다. 이 예에는 세 곳이지만 프로그램이 길어진다면 수십 곳, 수백 곳이 될 수도 있을 것이다.

 전술한 바와 같이 #define문으로 상수에 적절한 이름을 부여하는 것은 프로그램의 가독성 측면이나 수정의 용이함 등을 따질 때 그 활용도가 상당히 높다고 할 수 있다.



Posted by 살레시오
,

1.10  구분 기호와 주석    [DOC]    [SMTS]

1.10.1 구분 기호

 구분 기호(punctuator)는 C언어를 구성하는 요소들을 구분할 때 쓰이는 기호들이다. 다음 표에 기본적인 구분기호를 정리하였다. 현재 단계에서는 모두 알 필요가 없고 앞으로 실습을 진행하면서 하나하나 익히게 될 것이다.


표 1.10.1 구분 기호

기호

설명

사용 예

; (세미콜론)

실행문의 끝에 반드시 써야함.

int iA;
printf(“Hello world”);
return;

{ }

2개 이상의 실행문을 한 단위로 묶을 때 사용함.

{ iA++; iB = iA+iC; }

( )

함수명 뒤, 연산 등에 사용

main(), 2*(1+iA), (int)fA

< >

외부파일을 편입할 때

#include <stdio.h>

C프로그램은 실행문 끝에는 반드시 세미콜론(;)이 붙어야 한다. 초보자들이 흔히 하는 실수가 세미콜론 없이 줄바꿈을 하는 경우이다. 보통은 세미콜론이 붙으면 다음 줄로 넘겨서 프로그램을 작성하게 되지만 한 줄에 여러 실행문을 세미콜론으로 구별하여 나열하여도 된다.

1.10.2 주석

 주석(comment 또는 remark)은 프로그램에 대한 설명을 추가하는데 사용된다. C 프로그램에 주석을 다는 방법은 두 가지가 있는데 먼저 한 줄 주석은 더블슬래시( // ) 뒤에 한 줄 이내로 써주면 되고 두 번째로 주석문이 여러 줄일 경우는 시작기호 /* 와 종료기호 */ 사이에 넣어주면 된다.(C 언어의 경우 한 줄 주석은 C99 이후부터 지원한다.) 컴파일러는 주석 기호를 만나면 프로그램으로 취급하지 않고 무시한다.


 주석문은 컴파일러의 입장에서는 없어도 아무 상관없지만 프로그래머의 입장에서는 매우 중요하다. 그 이유는 다른 사람이 본인의 프로그램을 분석하거나 혹은 시간이 얼마간 지난 후에 본인이 작성한 프로그램을 다시 분석할 때에도 주석문이 꼼꼼하게 작성되어 있는 경우에는 도움이 되기 때문이다.


 전 장에서 자동으로 생성되었던 프로그램을 다음과 같이 수정해 보자.


ex01-02.c
/* 본 프로그램은
2015년 3월에 작성되었다.*/
#include <stdio.h>
int main() {
  printf("Hello world!\n"); // 문자열 출력
}
실행 결과
Hello world!

프로그램 서두에 /* ~ */ 로 둘러싸인 부분이 주석이다. 그리고 printf()함수가 있는 줄의 끝에 // 로 시작하는 한 줄 주석이 달려있다.(녹색 부분) 이 프로그램에서 주석이 없어도 실행에는 전혀 문제가 없다. 즉, 컴파일러 입장에서는 주석이 있으나 없으나 전혀 상관이 없다. 주석은 사람이 프로그램이 읽을 때 이해에 도움이 되는 설명을 덧붙이는데 사용된다.



Posted by 살레시오
,