제어언어 - 복습 및 디버깅(debugging)
#1. 자료형의 변환
학습목표: 계산 시 메모리와 CPU에서 자료형 또는 자료형의 크기가 다를 때 어떤한 결과가 발생하는지 이해할 수 있다.
/*MCU vs. 일반 CPU
MCU에서는 CPU와 메모리가 메인 보드안에 다 들어있는 반면에 일반적인 경우 CPU는 메모리와 분리되어 있다.
간단한 명령어로 제어할 경우 MCU를 쓰는 적절하다. */
//이번 주 금요일(2/27) 아트메가를 지급받아 실습할 예정
/*폰 노이만 방식
인간의 사고 방식(기억을 바탕으로 사고)을 모방하여 계산 시 우선 내부메모리에 정보를 저장하여 처리하는 방식이다.*/
인간이 사고 체계는 기억을 바탕으로 한다.
//실행 파일(exe)의 경우 하드 디스크에 있는 파일을 메모리로 불러와 실행 시킨 후 작업이 //끝나면 다시 삭제하는 것이다.
자료형의 변환
CPU와 BUS의 처리 속도에 따라 일회 작업량이 결정된다.
1. 정보 처리양이 작은 공간에서 큰 공간으로 갈 경우 -> 상향 또는 승격
ex) char을 32bit CPU와 BUS에서 처리
2. 정보 처리양이 큰 공간에서 작은 경우로 갈 경우 -> 하향
ex) 32bit CPU와 BUS에서 char 변수 처리 후 다시 메모리로 옮길 경우
#2 & 3. printf/scanf 함수의기본
학습 목표 - 이전에 배웠던 printf와 scanf를 책을 이론과 실습을 보면서 이해하고 보충한다.
//최적화를 위해서는 int변수가 가장 좋다.
자동 형 변환은 compiler에서 일어난다.
강제로 일으키는(사용자가 명령어 입력) 형 변환: 명시적 형 변환
ex) divResult = (double)num1 / num2;
Compiler가 해주는 형 변화: 묵시적 형 변환
p/134 printf 함수
- 특수 문자를 출력할 때는 “\”를 앞에 넣어준다.
- 8진수나 16진수를 출력할 경우 “%#o" 또는 ”%#x"를 넣어서 출력해 주는 것이 표시방법을 알려줌으로 좋다.
- %e 표기법: 1.xx 형태에서 10의 y승 숫자가 있을 경우 -> 1.xxey
//e는 대문자/소문자로 표시할 수 있다.
- %g 표기법: 소수점 이하 0이 4개 이하에서는 %f 방식으로 표시
소수점 이하 0이 4개 이상에서는 %e 방식으로 표시
- 필드 폭의 지정과 정렬: 필드 폭을 설정할 때는 표시방법 입력 시 %와 initial 사이에 숫자를 넣어주면 된다.
정렬 방식은 아무것도 입력해 주지 않을 경우에는 오른쪽 정렬, - 입력 시 왼쪽 정렬이다.
p/144 scanf 함수
- scanf 함수를 사용 시 자동적으로 줄 바꿈이 된다.
- 실수를 입력할 시 e표기법을 사용해도 컴파일러가 해석할 수 있다.
한 줄짜리 코드는 중괄호 생략 가능하다. (우리는 한줄 짜리도 다 쓴다!)
// 반복문을 무한반복을 시키고 싶을 경우 종료 조건에 “1”을 넣어준다.
// 최적화된 프로그래밍을 하려면 특정 명령어를 입력했을 때 compiler가 뭔 짓을 하는지 알// 고 있어야 한다.
#4. 디버깅
학습목표 - Visual Basic에서 디버깅을 사용할 수 있다.
디버깅(Debugging)
중간에 프로그램을 멈추게 하는 것을 debugging이라고 한다.
// 프로그램은 줄 번호에 따라 순차적으로 시행된다.(제어문을 제외하면)
실행법
메뉴판에 debug -> start debugging 혹은 단축키 F5
특정 영역에서는 debugging은 break point을 지정하여 주거나 단축키 F9
이 후에 F5로 다시 실행 시키면 지정된 break point는 노란 화살표로 바뀜과 동시에 새로운 dos창이 하나 떠 있게 된다.
shift + F5는 디버깅을 빠져나오는 키이다.
//6번이 break point이면 5번까지 수행이 된다.
해당 줄까지 실행시키고 싶으면 메뉴 - debug에서 step over 혹은 F10을 눌러주면 된다.
// break point에서 어디로 이동하느냐에 따라서 step into(해당줄)/step over(다음줄)/step out(이전줄) 기능이 있다.
Watch1 tap을 활용하여 변수의 값을 확인할 수 있다.
//debug와 F10 key를 활용하여 프로그램이 어떻게 작동하는지 알아볼 수 있다.
'Busan IT > 제어언어' 카테고리의 다른 글
반복문의 일반성과 특수성/switch문/함수 (0) | 2015.02.25 |
---|---|
디버깅(Debugging)과 논리연산자 (0) | 2015.02.24 |
연산과 변수의 최적화 (0) | 2015.02.17 |
C언어 복습 및 비트 연산자 (0) | 2015.02.16 |
C프로그래밍 책과 함께 기초 복습 (0) | 2015.02.13 |