본문 바로가기

C언어/강의

2010년 10월 21일 목요일 (포인터변수를 이용한 연산 & 주소값 연산) 포인터변수를 이용한 연산 #include int main() { int i=3, *ip=&i; // 포인터변수ip에 변수i의 주소값을 넣음 printf("%d\n", *ip); // 포인터변수ip가 가리키는 변수값 출력 (3) i=*ip+25; // 변수i에 포인터변수ip가 가리키는 변수값+25를 함(3+25) printf("%d\n", i); // 출력결과 28 return 0; } 3 28 출력값을 보면 3+25가 실행되었다는 것을 알수있다. 즉 포인터변수 ip가 가리키고있는 변수i의 값 3과 25를 덧셈을 한것이다.(i=i+25와 같음) 주소 값의 연산 #include int main() { short snum=5, *sp=&snum; float fnum=2.3f, *fp=&fnum; printf(.. 더보기
2010년 10월 21일 목요일 (Source Insight 사용하여 DDRF헤더파일 분석하기) Source Insight는 컴파일러가 아닌 분석 프로그램이다. 사용법을 알아보자 Project 탭에서 New Project를 클릭하여 새로운 프로젝트를 만들어준다. 단축키(알트+쉬프트+N) 그러면 다음과 같은 화면창이 나타난다. 특별한건 없다. New project name에 자신이 원하는 이름을 아무거나 입력하면 된다. 필자는 atmegatest라 정함. 그리고 아래쪽에 폴더의 경로가 보일것이다. 위의 그림은 미리 정해진 기본 경로이며 이것은 옆에 브라우져를 클릭 하여 자신이 원하는 경로로 임의로 바꿀수 있다. 필자는 D:\ProjectA\source insight로 정함. OK 클릭. 새 프로젝트의 이름을 정하고 ok를 누르면 위의 화면이 나오는것을 알수있다. 여기에서는 자신이 보고싶은 파일의 경로.. 더보기
2010년 10월 20일 수요일 (포인터:함수의 주소값, 포인터변수가 가리키는 자료형 의미) #include // 함수의 이름도 주소값을 갖고 있다. int main() { int a=3; printf("printf adress : %08x\n", printf); //printf함수주소값 printf("main adress : %08x\n", main); //main함수주소값 printf("a adress : %08x\n", &a); //변수a의 주소값 return 0; } 결과를 출력해보면 알수있듯이 함수에도 각각의 주소를 가지고 있음을 알수 있다. #include int main() { int inum, *ip; short *sp; inum=0x0F5A0B43; ip=&inum; // inum의 주소값을 넣음.(inum을 가리킨다. 0012FF7C) printf("inum: %x *ip : .. 더보기
2010년 10월 19일 화요일 (감기로인한 결석) 아 죽것다. ㅡ.ㅠ 더보기
2010년 10월 18일 월요일 (실수 : 지수부 & 가수부 계산) int A = 0x12345678; 7 8 5 6 3 4 1 2 little indian unsigned int A = 0x12345678; unsigned short *SP = (short*)&A unsigned char *CP = (char*)&A printf(“%x\n”, *SP); ☜ 5678 출력 printf(“%x\n”, *CP); ☜ 78 출력 992 1000 CP 996 1000 SP 1000 7 8 5 6 3 4 1 2 A add 변 ress 메모리(4byte) 수 41c8 000016 = 0100 0001 1100 1000 0000 0000 0000 00002 then we break it down into three parts; sign bit, exponent and signific.. 더보기