C 언어 - 변수형, scanf, 상수, %(숫자)(형식연산자), 마인드스톰(mindstorms)
#include<stdio.h>
int main()
{
unsigned char a;
unsigned short b;
b=256;
a=b;
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
→ signed short b=255는 %d로 출력하면 -1이 나온다.
즉, 이와 같이 변수와 값을 선언하기 전에는 쓰레기값 혹은 임의의 값이라 불리는 값이 들어가 있다. 이 변수에 255라는 수를 선언 하는 것을 초기화라 한다.
․ unsigned short b; → 변수 선언.(쓰레기값이 들어가 있다.)
․ short b=0; → b=0으로 초기화
․ unsigned short b=0; → 변수선언과 초기화를 동시에
// int 형 변수가 범위를 벗어나는 값을 가질 경우 발생하는 오류를 보여주는 프로그램
# include <stdio.h>
int main()
{
int num;
num = 2147483647; //정수의 최대값
num = num +2;
printf("최대값보다 2가 큰 값은 %d.\n", num + 2);
num = num - 2;
printf("최대값보다 2가 작은 값은 %d.\n", num -2);
return 0;
}
⇒ num = num +2;
① num+2 → 최대 값 +2(ALU가 계산 하고 register로 값이 넘어간다.)
② num-2의 값이 num으로 대입되고 최대값 2147483647+2가 num이 된다.
․ scanf → scan + f(function)
⇒ 키보드로 값을 입력받는다.
- scanf("%d",&변수) → 개행문자를 넣지 않는다. %d를 입력받는 다는 것은 10진수 정수만 입력 받는다는 것.
- &(ampersand)는 주소연산자로 scanf() 함수 내에서 입력 값을 받는 변수 앞에 반드시 붙여 주어야 한다.
// 키보드로부터 숫자를 입력받아 화면에 출력하는 프로그램
#include <stdio.h>
int main()
{
int number;
printf("Please enter a number : "); /*키보드로 10진수 정수를 입력받아 number 위치에 넣어라는 뜻*/
scanf("%d", &number); /* 아무것도 입력ㅎ지 않으면 block 상태-커서가 대기하며 멈춰있다.(프로그램 정지 중)
printf("The number you typed is %x.\n", number);
return 0;
}
․ stdio.h
- stdio(standard input output - 표준 입출력). h(header)
- input(입력장치-키보드) ※마우스는 기본적으로 표준 입력 장치에 들어가지 않는다.
- output(출력장치-모니터)
․ char ≤ short ≤ int ≤ long 의로 규정되어 있으며, 32bit CPU의 경우
⇒ char = 1byte, short = 2byte, int = 4byte, long = 4byte로 되어 있으나 이것과 다른 값을 가질 수 도 있다.
※ short 형은 int 형이며, int의 절반의 바이트 크기를 가진다.
․ %(형식연산자-d,o,x,f,lf...) 사이에 숫자(자리수)를 지정해 줄 수 있다.
// 자릿수 지정에 따른 데이터 출력 결과
#include <stdio.h>
int main()
{
printf("%2d\n",111);
printf("%1d\n",111);
printf("%3d\n",111);
printf("%4d\n",111);
printf("%5d\n",111);
printf("%6d\n",111);
printf("%7d\n",111);
printf("%8d\n",111);
printf("%12d\n",111);
printf("%-2d\n",111);
printf("%-3d\n",111);
printf("%-4d\n",111);
printf("%-5d\n",111);
return 0;
}
실행결과 정리
프로그램을 컴파일 하면 위와 같은 값이 출력되는데 이것으로 보아 데이터 크기보다 작은 숫자(여기서는 3까지)를 %d 사이에 넣어도(%3d) 데이터 값은 그대로 출력되며 그 보다 클 경우에는 해당비트 수 만큼 오른쪽으로 밀려나서 나타나게 된다.(비트가 왼쪽에 생성되어 그만큼 빈칸이 나타난다.) 음수일 경우는 오른쪽으로 나타나 화면에는 변화가 없다.
․ 상수(Constant) - C언어에서는 const로 사용.
⇒ 변하지 않는 수.(문자도 포함 될 수 있는데, 그 이유는 컴퓨터가 문자까지도 숫자로 기억하기 때문이다.)
․ char num = 13;
⇒ char(형 지정자, type 지정자), num(변수), = (대입연산자), 13(상수),
;(세미콜론 - 명령문 뒤에는 반드시 붙인다.)
․ sizeof()
⇒ 바이트의 크기를 확인하게 해준다.
sizeof(자료형 or 변수 or 수식)
Mindstorms 실습
Anmial ⇒ spike ⇒ Crawling Base ⇒ 조립(Building) ⇒ NXT programming
제작한 spike
구동 영상
앞 뒤 이동
앞으로 이동후 왼쪽으로 돌아 다시 이동하는 동작
'내장형 하드웨어 > C언어' 카테고리의 다른 글
C 언어 세번째 정리 - 자료형(data type), printf, 메모리 크기 (0) | 2011.03.28 |
---|---|
C 언어 두번째 정리 - 컴파일 과정 (0) | 2011.03.28 |
c언어 실습 (char, 대입연산자, printf) (0) | 2011.03.23 |
보수 정리 (0) | 2011.03.23 |
gcc와 cl을 사용한 리눅스 환경과 윈도우 환경의 중간파일 생성(컴파일) 단계 확인 (0) | 2011.03.22 |