'C 언어'에 해당되는 글 7건

  1. 2012.05.24 C <20>. enum (4)
  2. 2012.05.18 C <17>. 동적할당 (2)
  3. 2012.05.16 C <16>. 구조체 (2)
  4. 2012.04.05 C <13>. 변수의 범위
  5. 2011.12.14 C <7>. 조건문(2) switch (6)
  6. 2011.12.11 C <6>. 조건문(1), if, else (6)
  7. 2011.12.04 C <4>. 실수 표현 방법 (2)

C <20>. enum

C 2012.05.24 12:30

오늘의 주제

1. enum


벌써 스무 번째 시간입니다.^^

지난 번에 연결리스트에 대해 알아보았는데요 ㅎ 어려우셨죠?
요번에는 잠시 쉬어갈 겸 간단한 녀석 하나 들고 왔습니다~
이런 녀석도 있구나~
알고 가시면 될 듯 합니다.

자 그럼 상쾌한 기분으로 출발 해 볼까요?
고고씽~~~~~~~~~~~~




# enum

지난 번에 전처리자를 이야기 하면서 enum에 대하여 스치듯이 이야기 해 드린 것 같은데요 그때 소개해 드리지 못해 이번에 소개해 드리려 합니다.

enum은 상수 세트를 선언 해 줄 수 있습니다.

주로 어떤 상수 Flag를 지정해 줄 때 사용하게 되는데요, 그게 무슨 뜻이냐 하면 

내가 프로그램 안에서의 약속을 

상태1 == 0
상태2 == 1
상태3 == 2

으로 표현 간단히 해 주고 싶을 때 사용하게 됩니다.

뭐, 일단 알아두시고 나중에 프로그램을 짤 때 아! 이거 써먹으면 편하겠다! 라는 생각이 들 때가 올거예요 ㅎ 

언제 한 번 사용 해볼 때가 있으면 저도 다시 소개 해 드릴게요 ㅎ

오늘은 간단한 코드만 하나 내려놓고 갑니다~^^*


실행 해 보세요~

아까 말씀드렸다시피 enum으로는 상수형 정수만 표현이 가능합니다.

enum안에서 다음번의 순서에 있는 녀석에 특별히 숫자를 대입해 주지 않는다면, 이전 숫자에 +1 이 되어 들어갑니다.

직접 실행해서 확인해 보시는 방법이 가장 빠르겠네용 ㅎ

그럼 저는 이만~!

다음엔 뭘 가지고 나타나 볼까요 ㅎㅎ


by yagom

twitter : @yagomsoft

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 



저작자 표시 비영리 변경 금지
신고

'C' 카테고리의 다른 글

C <20>. enum  (4) 2012.05.24
C <18>. 연결리스트 (Linked list) - 자료구조(1)  (0) 2012.05.21
C <17>. 동적할당  (2) 2012.05.18
C <16>. 구조체  (2) 2012.05.16
C <15>. 전처리자  (0) 2012.05.14
C <14>. 배열  (4) 2012.05.11
Posted by yagom

C <17>. 동적할당

C 2012.05.18 12:30

오늘의 주제

1. 동적할당 malloc 


열 일곱 번째 시간입니다.^^

지난 번에는 구조체에 대하여 알아보았습니다.
구조체라는 녀석도 꽤나 매력적인 녀석입니다.
예를 들어 한 사람의 정보를 구조체 하나에 담을 수도 있구요(이름, 나이, 성별, 직업 등등)...
복합적인 자료를 관리하기 참 편리할 것 같죠?ㅎ

그리고 저번에 배웠던 배력적인 배열에 대해서도 잠깐 생각해 보도록 해요.
2012/05/11 - [C] - C <14>. 배열
ㅂㅐ열에서 우리는 하나의 의문을 가지고 끝을 맺었었죠.

배열의 크기는 조절 할 수 없는가 였는데요.
네, 조절할 수 없으므로, 필요에 따라서 우리가 원하는 크기만큼 할당하는 것이 좋겠죠?

그런데 우리가 개발을 하면서 이 배열은 딱 이 사이즈면 돼. 라고 말할 수 있는 경우는 많지 않습니다.
때에 따라 너무 다를 수 있으니까요.

그래서 배열을 때에 따라 상황에 맞게 할당 할 수 있는 기능이 있습니다.

물론 배열에 국한된 것은 아니지만 주로 배열에서 사용하게 되므로 배열로 예를 들어서 설명해 보겠습니다.

정말 중요한 것이니 몇 번을 보고, 다른 싸이트를 검색하고, 직접 계속 둘러보면서 꼭 몸으로 익히도록 하세요~! ^^

스따뚜~~~~~~~~~~~~

그 전에 추천 한 방 어떠세요?ㅎ 저에게 큰 힘이 됩니다 +_+ㅋ



# 동적할당 malloc

malloc이라는 함수가 하는 역할은 우리가 원하는 크기의 자료를 메모리에 할당하고 그 주소값을 다시 되돌려 주는 역할을 합니다.
즉, 입력값은 원하는 크기, 리턴값은 메모리의 주소 입니다.

사용방법은

포인터 변수 = (포인터의 자료형 종류)malloc(원하는 자료크기);

이런식으로 사용합니다.

잘 감이 안오시죠?ㅎ 예제를 봐도 감이 올랑말랑 할겁니다 ㅎ

그래도 한 번 예제 소스 보시죠~ 자세한 설명은 역시나 주석으로 ^^

 
지난 번 배열의 비밀에서 배열의 이름은 배열 첫 머리 원소의 주소가 된다고 말씀 드렸죠?ㅎ
그것을 여기서 멋들어지게 써먹는 겁니다~
배열을 메모리에 할당을 해주고 그 첫머리의 주소값을 포인터 변수에 넣어주는 것이죠 ㅎ
그러면 배열과 똑같은 역할을 하게 되는 것이죠~

참! 그리고 malloc을 한 후에 사용을 끝냈으면 꼭 free를 호출해서 메모리에 할당하였던 녀석을 풀어주어야 합니다~
안그러면 메모리에 좀비처럼 남겨져서 메모리가 필요할 때 사용을 할 수가 없어요^^&

그럼 결과를 한 번 볼까요?



자, 숫자는 랜덤으로 들어갔기 때문에 숫자는 다를 수가 있어요 ㅎ

어떤가요? malloc이라는 녀석 매력적인가요?ㅎ

부족하거나 더 궁금한 점이 있다면 주저말고 댓글 주세요~^^*

그럼 전 이만...!


by yagom

twitter : @yagomsoft

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 



저작자 표시 비영리 변경 금지
신고

'C' 카테고리의 다른 글

C <20>. enum  (4) 2012.05.24
C <18>. 연결리스트 (Linked list) - 자료구조(1)  (0) 2012.05.21
C <17>. 동적할당  (2) 2012.05.18
C <16>. 구조체  (2) 2012.05.16
C <15>. 전처리자  (0) 2012.05.14
C <14>. 배열  (4) 2012.05.11
Posted by yagom

C <16>. 구조체

C 2012.05.16 12:30

오늘의 주제

1. 구조체 


열 여섯 번째 시간입니다.^^

지난 번에는 전처리자에 대해 알아보았습니다.
잘만 사용하면 좋지만, 잘못 사용한다면 독이 될 수 있는 녀석입니다.
사용에 유의하세요^^

오늘은 또 하나의 개념 구조체에 대해 알아보도록 하겠습니다.

자 그럼 이제 시작해 볼까요?^^
스따뚜~~~~~~~~~~~~

그 전에 추천 한 방 부탁~~~~~~~해요~~~~~~
저에게 큰 힘이 됩니다. ^~^




# 구조체의 개념


간단 합니다.
이 녀석은 배열과는 다르게 서로 다른 종류의 자료들이 들어갈 수 있습니다.

큰~~~~~~~ 박스 안에 서로 다른 크기의 작은 박스들이 들어가 있는 형태라고 보시면 되겠습니다.

그래서 우리가 큰 박스를 만들고 그 안에 작은 박스들을 만들어 넣습니다.

선언하는 방법은

struct 구조체이름 {
  내용물(변수들 선언)
} 구조체변수이름;


한 번 구조체 이름으로 선언 해 주면
다음 번에는 
struct 구조체이름 구조체변수이름;
이라고 선언 해 줄 수도 있습니다.

구조체 안의 변수에 접근하는 방법은

구조체변수명.내용물변수이름

이런식으로 접근하게 됩니다.

말로 하니까 어렵네요 ㅎ 예제를 한 번 봅시다요~

# 구조체 예제
 


yagom이라는 이름의 구조체를 tYagom, tAgainYagom 이라고 선언해 준 형태입니다.
yagom이라는 이름의 구조체 안에는 int형 변수 nNum과 char 포인터형 변수 szName이 들어가 있네요~
그곳에 접근하는 방법은 .  을 통해서 접근하는 것이죠.


결과 캡쳐입니다. 다들 예상대로 출력이 되었나요?ㅎ

그런데 구조체를 선언 할 때 마다 struct yagom 이렇게 하기가 좀 귀찬습니다...ㅎㅎ

그래서 조금이라도 더 간단히 하기 위해서 우리는 이렇게도 선언을 할 수 있습니다.

typedef 라는 녀석을 이용하는데요.

typedef는 어떠한 형태의 타입을 나는 이렇게 정의 하겠다, 라고 말해주는 것으로써 #define이랑 하는 짓은 비슷합니다만, 정의 해 줄 녀석이 아무거나가 아니라 자료형이라는 점이 다릅니다.

typedef int my;
이런 식으로 해주면
int a; 라고 선언 한 것과 my a; 라고 선언 한 것과 동일한 효과를 가져오게 됩니다.

그러므로 typedef struct yagom{ ...} yagom; 이런 식으로 선언을 해준다면 struct yagom{...} 과 yagom과 같아지는 효과를 보게 되겠지요.

말로는 잘 이해가 다가오지 않죠?ㅎ 실습 해 봅시다.


위에 그림처럼 struct yagom을 한 것과 그냥 yagom이라고 한 것과 같은 효과를 볼 수가 있네요~


자, 이렇게 해서 구조체에 대해 간단히 알아보았습니다.

참, 오늘 빼먹은 것이 있는데, 만약 구조체의 포인터변수에서 내부의 변수에 접근을 하려면 . 을 사용하는 것이 아니라 ->을 사용하게 됩니다.

잘 이해가 안가시면 다다음 번 포스팅 때 제대로 볼 수 있으실 거예요~ㅎ

그럼 다음에 또 뵈어요~^^&

by yagom

twitter : @yagomsoft

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 



저작자 표시 비영리 변경 금지
신고

'C' 카테고리의 다른 글

C <18>. 연결리스트 (Linked list) - 자료구조(1)  (0) 2012.05.21
C <17>. 동적할당  (2) 2012.05.18
C <16>. 구조체  (2) 2012.05.16
C <15>. 전처리자  (0) 2012.05.14
C <14>. 배열  (4) 2012.05.11
C <13>. 변수의 범위  (0) 2012.04.05
Posted by yagom

C <13>. 변수의 범위

C 2012.04.05 12:30

오늘의 주제

1. 변수의 범위 


열 세번째 시간입니다.^^

지난 번에는 함수에 대해 알아보았어요~
함수... 중요합니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
내가 안중요하다고 하는거 있었나..ㅋㅋㅋㅋㅋㅋㅋ
그말인 즉슨 알짜배기 열심히 적고있다는 얘기겠지요?ㅋㅋ

자 그럼 서론 생략하고 변수의 범위에 대해 알아봅시다~
스따뚜~~~~~~~~~~~~


# 변수의 범위

그전에 변수란...?
이미 예전에 포스팅 했지요?ㅎㅎ
잘 기억이 안나신다면...ㅋㅋ
보고옵시다~
2011/12/02 - [C] - C <3>. 변수. Variable

자. 변수에도 범위가 있나요??

오홍 그럼요~

어디서든지 쓸 수 있는녀석, 어떤 곳에서만 쓸 수 있는 녀석 등등 변수가 미치는 범위는 다양하답니다~
변수 뿐만 아니라 함수도 마찬가지예요~^^
그럼 자세히 알아봅시다~

일단 변수에는, 어떤 영역 안에서만 사용 가능한 변수, 한 코드파일 안에서 사용 가능한 변수, 다른 파일에서도 사용 가능한 변수... 등등 이렇게 여러가지가 있어요~

몇몇 변수들은 변수 앞에 붙는 키워드에 따라 분류할 수 있습니다.

extern, static 등등 이런 키워드 들이예요~

자, 아래 설명을 봅시다.

전역변수 (Global 변수) : 어떠한 한 코드 파일 내에서 어디서든지 사용 가능한 변수를 말합니다.
지역변수 (Local 변수) : 어떠한 한 구문 또는 함수 내에서만 사용 가능한 변수를 말합니다.
외부변수 (Extern 변수) : 다른 코드 파일에서도 사용 가능한 변수를 말합니다.
정적변수 (Static 변수) : 한 번 선언이 되면 변수가 사용 가능한 영역을 벗어나도 메모리에 기억되어 사라지지 않는 변수를 말합니다. 

자, 이렇게만 말하니까 이해가 잘 안가시죠?

직접 실습해 봅시다~

일단은 지난번에 생성한 VarAndFunc.h 파일로 갑니다.

네모 박스처럼 이쁘게 코딩 해 줍니다~


자, 그럼 이제 FuncExample.h로 가서 VarAndFunc.h에서 선언했던 녀석들을 한 번 불러와 볼게요~
extern 이라는 녀석이 외부 변수를 뜻하는 겁니다.


보시다시피, extern 키워드를 써서 다른 코드파일(VarAndFunc.h)에서 변수와 함수를 가져오는 것을 볼 수 있죠?
이렇게 하면 다른 파일에 선언된 변수를 가져와서 쓸 수 있습니다. 
main함수에서도 새로 몇 줄 추가를 합니다. 


이렇게 추가를 해주고, 우리가 만들어 주었던 myFirstFunction 함수로 와서 static(정적)변수를 선언해 줍니다.
이녀석은 함수가 끝나고 메모리에서 지워지지 않습니다.
무슨말이냐 하면... 우리가 흔히 사용하던 int 변수는 함수가 끝나면 초기화가 되고 함수를 다시 시작하여 선언하면 다시 생성됩니다.
이것을 지역변수라고 합니다.
하지만 static 변수를 선언하게 되면 다시 함수를 호출하여도 초기화가 되지 않고 지난 값들을 기억하고 있다가 다시 그 값을 불러들이게 됩니다.
잘 이해가 안가신다면 밑에 실행 결과를 봅시다~

[##_http://blog.yagom.net/script/powerEditor/pages/1C%7Ccfile29.uf@1413BC424F707BEE1A67DE.png%7Cwidth=%22601%22%20height=%22118%22%20alt=%22%22%20filename=%224.png%22%20filemime=%22image/jpeg%22%7C_##]


짜잔~
static 변수는 함수를 몇 번 호출하더라도, 한 번 선언을 했으면 지워지지 않고 초기화 하는 1은 신경을 쓰지 않습니다.
하지만 지역변수인 녀석은 계속 1로 초기화 되기 때문에 1만 출력이 되죠.
또한 global 변수는 하나의 함수 안에 종속되지 않고 나하의 코드 파일 안에서 어디서든지 사용 할 수 있습니다.
그리고 extern 변수는 다른 파일에서 가져와서 쓸 수 있는거죠.


잘 이해가 되셨는지 모르겠습니다만...

저도 지금 감기는 눈으로 휘갈기는거라...ㅋㅋㅋ

혹시 이해가 가지 않는 부분이나 틀린 부분이 있으면 날카롭게 지적 부탁드립니다...^^

그럼 야곰은 이만 물러갑니다..^^



by yagom

twitter : @yagomsoft

 
p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓ 



저작자 표시 비영리 변경 금지
신고

'C' 카테고리의 다른 글

C <15>. 전처리자  (0) 2012.05.14
C <14>. 배열  (4) 2012.05.11
C <13>. 변수의 범위  (0) 2012.04.05
C <12>. 함수  (4) 2012.04.02
C <11>. 포인터 (2)간단실습  (0) 2012.03.27
C <10>. 포인터 (1)개념잡기  (3) 2012.03.23
Posted by yagom

C <7>. 조건문(2) switch

C 2011.12.14 13:40

오늘의 주제

1. switch문 사용해 보기

일곱 번째 시간입니다.^^

지난 번에는 if 조건문에 대해 알아보았습니다.
이번에는 또다른 조건문인 switch문에 대해 알아보도록 할게요 ㅎ

스따뚜~~~~~~~~~~~~


# switch

자, 일단 만들어 봅시다. 지난번 if문 할 때 만들어 놓았던 프로젝트를 열어 봅시다.
이번에는 switchNumbers() 라는 함수를 만들거예요.
빨간네모를 따라 코드를 작성해 봅시다.ㅎㅎ


위의 코드의 실행 결과 화면입니다.


switch문의 작성법은 이렇습니다.

switch(대상 변수)
{
    case 
정수 혹은 문자 :
           실행할 명령문
           break;
    case 
정수 혹은 문자 :
           실행할 명령문
           break;
    case 정수 혹은 문자 :
           실행할 명령문
           break;
    default :
           실행할 명령문
           break;  
}


자, switch문은 주로 정수형의 변수가 어느 특정 조건을 만족하는지 검사할 때 쓰입니다.

if문과 다른 점은 크거나 작다에 대한 비교를 하기 보다는, 딱 어떤 변수가 어떤 수일때 실행. 을 목표로 하는 조건문입니다.

눈치 채신 분들도 계시겠지만, case 안에 해당되는 수가 없으면 default에 있는 명령어를 실행합니다.

그리고 모든 case아래에 break 명령어가 있는 것이 보이실 텐데요, break문이 없으면 아래에 있는 모든 것들을 다 실행하라는 의미로 받아들여집니다.

한 번 break 없애고 실행해 보세요 ㅎㅎㅎ 어떤 참사하 일어나는지..^^

위의 코드에서는 i가 어떤 수인지 알아보는 코드가 되겠네요.

i가 5 또는 10 또는 17 중에 하나에 해당되면 거기에 맞는 명령이 실행될테구요, 만약 해당되는 것이 없으면 default에 있는 것을 실행합니다.

if조건문과 switch조건문의 특징을 잘 숙지하시고 알앚게 효율적으로 사용하시면 될 것 같습니다^^

사실 if문 보다 switch문의 사용법이나 규제가 좀 더 까다롭지만, if - else if - else if - else...를 한없이 늘어놓는 것 보다 훨씬 간편하게 사용하실 수도 있습니다.

즉, 때에 따라 적절히 ^^


by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓
저작자 표시 비영리 변경 금지
신고

'C' 카테고리의 다른 글

C <9>. 반복문(2) do-while  (7) 2012.02.06
C <8>. 조건문(3) 3항 연산자  (7) 2012.01.28
C <7>. 조건문(2) switch  (6) 2011.12.14
C <6>. 조건문(1), if, else  (6) 2011.12.11
C <5>. 반복문(1), 단항 연산자  (2) 2011.12.08
C <4>. 실수 표현 방법  (2) 2011.12.04
Posted by yagom

C <6>. 조건문(1), if, else

C 2011.12.11 12:25

오늘의 주제

1. if문 사용해 보기 

여섯 번째 시간입니다.^^

지난 번에는 반복문과 단항연산자에 대해 알아보았습니다.
연습은 잘 하고 계신지요?
정말 중요한 것이니 몇 번을 보고, 다른 싸이트를 검색하고, 직접 계속 둘러보면서 꼭 몸으로 익히도록 하세요~!

자 그럼 오늘은 조건문 중에서도 if문에 대해 알아보도록 할게요^^
스따뚜~~~~~~~~~~~~


# if, else

조건문에 해당하는 녀석들은 몇몇 있습니다만, 오늘은 if와 else를 사용하는 if문에 대해 조금 알아보도록 할게요 ㅎㅎ

자 프로젝트 하나 만들어 주시고~


이쁘게 코드를 작성해 봅시다 ㅎㅎㅎ


실행 결과입니다.


동작에 대해서는 대충 눈치 채셨지요?ㅎㅎㅎ
너무나 쉽습니다~

그런데 처음 보는 녀석이 있죠~

main함수 밖에 나가있는 녀석들이 생겼네요 ㅋㅋㅋ
이 녀석들을 우리는 '함수'라고 부릅니다. 함수는 나중에 더 많이 다루겠지만, 지금은 아~ 그런 녀석이구나 하고 아시면 됩니다.
다음 시간에도 이 함수라는 녀석을 하나 더 만들어 볼거지만요, 지금 단계에서는 별거 없습니다 ^^

똑같은 일을 하는 녀석들을 매번 복사 붙여넣기 하면 귀찮고 코드도 길어지잖아요 ㅎㅎㅎ
그래서 우리가 원하는 일을 해 줄 녀석들을 미리 만들어 놓고 필요할때 너 이거해! 이렇게 시키는게 함수예요~
아... 뭐 일단 대충 이렇게 알아두시구요 ㅎㅎ
코트를 지긋이 바라보시면 어떻게 만들고 쓰는지 감이 좀 오실거예요 ㅎㅎㅎ

if-else문을 사용하는 방법은

if (조건)
{
      조건이 성립하면 실행한 후 아래 else if 나 else를 무시하고 그 아래로 이동
}

else if(조건)
{
     만약에 위에서 조건이 맞지 않았다면 실행 후 아래 있는 것 무시하고 if문 탈출
}
 
else
{
     위의 조건들이 모두 충족되지 않았을 때 실행
}


이렇게 사용하게 되는데요 if는 if 단독적으로 사용할 수도 있고, 위에 처럼 else if 또는 else와 짝을 이뤄 사용할 수도 있습니다.

즉, if는 혼자만 존재할 수도 있습니다.

....
if(조건)
{
   실행 코드
}
...
이런식으로 작성해도 무방합니다.

하지만 else if나 else는 위에 if가 존재해야지만 사용할 수 있죠^^ 상식적으로도 그게 맞겠죠?ㅎㅎㅎ

또한 if문 안의 실행할 내용이 한 줄 뿐이라면

if (조건)  실행할 한 줄

이런식으로 작성해도 무관합니다만, 코드의 가독성을 위해서 대괄호 {}를 이용하여 표시해 주는 것이 더 바람직 합니다^^

또, 위에서 보면 조건 중에 i == j 와 같은 녀석이 있는데요, i = j 라고 표현하면 j의 값을 i에 복사하라는 의미이기 때문에 i == j 라고 표현하여 i가 j와 같은가에 대한 조건을 만들어 주는 것입니다.

참고로, i = j 는 대입연산자라고 부릅니다.

이정도로 설명이 되었을런지는 모르겠습니다.

잘 이해가 되지 않는 부분은 댓글로 질문 주세요^^

by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓
저작자 표시 비영리 변경 금지
신고

'C' 카테고리의 다른 글

C <8>. 조건문(3) 3항 연산자  (7) 2012.01.28
C <7>. 조건문(2) switch  (6) 2011.12.14
C <6>. 조건문(1), if, else  (6) 2011.12.11
C <5>. 반복문(1), 단항 연산자  (2) 2011.12.08
C <4>. 실수 표현 방법  (2) 2011.12.04
C <3>. 변수. Variable  (4) 2011.12.02
Posted by yagom

C <4>. 실수 표현 방법

C 2011.12.04 13:00


오늘의 주제


1. 실수 표현 방법


네 번째 시간입니다.

이번에는 사실 그다지 중요하지 않은 포스팅입니다.
그냥 해보는 깨알같은 팁!?ㅋㅋㅋ
서론 필요 없고 실습 시작입니다~!

# 실수 표현 방법

일단 새로운 프로젝트를 만들고 아래와 같은 코드를 입력하여 봅니다.


결과 출력 화면입니다.


간단하게 코드를 설명하자면...

일단 printf안에 %%라고 표현 한것은 로그에 %가 찍히게 하기 위함입니다...
뭐~ 그냥 그렇다구요 ㅎㅎ

%lf는 double형 실수를 표현하기 위한 출력 형식 지정자라는 것은 알고 계시죠?ㅎㅎ
그냥 %lf하면 컴파일러나 프로세서마다 다르겠지만 3532.0483940000... 이런식으로 대책없이 나오는 것이 보통입니다. 
그래서 좀 더 깔끔하게 출력을 하고 싶으신 분들이 있으실 겁니다.

%.3lf 라고 해주면 소수점 3자리 까지만 출력하라는 의미입니다.

마찬가지로 %.9lf해주면 소수점 9자리까지 출력하라는 의미입니다. 당연히 자리수가 없으면 나머지 자리에 0을 채워넣고 출력해주죠.

%10.3lf의 뜻은 총 10개의 칸에 표현하되 소수점은 3자리만 표현하라는 의미입니다. 물론 점(.)도 한 칸을 차지합니다. 다시 쉽게 설명하면 정수자리 6개와 소수자리 3개를 표현 할 때 이런식으로 작성하여 줍니다.

하지만 %3.3lf와 같이 부족한 칸 안에 표현하라고 하면 무시하고 그냥 원래대로 표기해 버립니다.

%10lf 하게되면 총 10개의 칸에 수를 표현하라는 의미입니다. 하지만 입력되어있는 숫자가 정수자리 4자리 + 점 1자리 + 소수자리 6자리 = 총 11자리 이기 때문에 10칸을 초과하죠? 그래서 그냥 무시하고 출력해 버립니다. 

하지만 %15lf하면 총 11자리 중에 4칸이 남기 때문에 좌측에 공백을 4칸 남기고 출력을 해 줍니다.

%-15lf 하면  총 15칸을 쓰지만 좌측정렬을 하라는 의미입니다.

%+15lf는 의미가 없습니다... 이상한 출력이 되지요?ㅎ 기본적으로 우측 정렬로 되어있기 때문에 의미 없는 표현이 되겠습니다..^^

별 의미 없어보이지만, 나름 팁이라고 생각하고 한 번 쯤 봐두시는 것도 나쁘지 않으실거예요^^

참, double형 뿐만 아니라 float형에서도 lf만 f로 바꿔서 해보시면 됩니다.ㅎ

이상 깨알같은 팁 포스팅이었습니다~!

다음에 뵈어요^^

by yagom

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기  


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓
저작자 표시 비영리 변경 금지
신고

'C' 카테고리의 다른 글

C <6>. 조건문(1), if, else  (6) 2011.12.11
C <5>. 반복문(1), 단항 연산자  (2) 2011.12.08
C <4>. 실수 표현 방법  (2) 2011.12.04
C <3>. 변수. Variable  (4) 2011.12.02
C <2>. 주석(Comment)  (2) 2011.11.29
C <1>. Hello, World!  (9) 2011.11.25
Posted by yagom


티스토리 툴바