분류 전체보기
2013.04.01_함수포인터응용편!
1. void test( int( *p)( const char *, ...) ) 의 반환형 void 를 p 의 반환형으로 바꿔서 p 를 반환받아 보자. 2. p 의 반환 자료형은 int(*●)(const char *, ...) 이다. 앞에 ● 이부분에 인수가 붙어야 하므로함수 > test( int (*p)(const char *, ...) ) 을 ● 이부분에 붙여주면된다!! 3. int(* test( int (*p)(const char *, ...)) )(const char *, ...){~~~~return p;} 끝!
20130329_함수포인터(1)
1. 먼저 한글은 한글자당 2byte를 할당 받음. 2. char *T = "안녕하세요\n"; , 포인트변수 T 를 할당하였고, T가 가지고있는 주소를 따라가서 그 안에 "안녕하세요\n" 를 넣어둠! 3. printf(T); , T의 주소를 찍어주었고, printf 는 심볼테이블에 적히는 자료형이 int( *)(const char *,...) 이므로 문자형 상수인 const char * 에 의해 T의 주소를 따라간다. 4. 그러므로 printf(T); 는 '12녕하세요' 가 출력 되었다.5. 밑에 printf(0x0040B000); 로 컴파일을 하면 경고메세지가 뜬다. "안녕하세요\n" 가 문자형상수이므로 같은 자료형으로 맞춰 주어야 하기 때문이다. 그래서 앞에 캐스팅을 해줘서 자료형을 맞추면 경고메세지..
[스크랩]인수/인자리스트
■ 함수 인자 / 인수 리스트- 빨간 부분을 인자/인수 리스트라고 함.- 파란 글씨 각각을 인수 또는 인자라 함.ex ) float average( int n1, int n2 ) ※ char A; int n1; n1 = A; //둘다 정수형이라 에러 안뜸(묵시적 형변환) ※ 메인함수에 return 이 빠져있으면 컴파일러가 넣어줌 하지만 우린 return 0 를 직접 넣어주는것을 표준으로 함. ※ 반환형이 void 형이면 return; 를 적어줌, 안적어도 컴파일러가 적어줌(하지만 적는 습관을 가져야함)※ 리턴값은 임시값으로 CPU(레지스터)에 들어가 있음. 함수의 호출과 실행 / 함수의 정의- 함수이름은 변수이름과 같은 조건으로 만들수 있음(대소문자 구분, 첫글자는 _ 또는 알파벳으로만 숫자, 알파벳, ..
2013.03.28_함수의인수전달기법
1. 함수의인수 전달 기법으로는 큰 분류로 값전달( + 포인터(주소값) 포함되있음)과 참조전달이 있다. C에서는 값전달과 주소값 전달이 있다. ※ 값전달을 하면 함수에서 값을 정의하고 반환값으로 하나의 값을 받을수 있지만, 주소값 전달은 포인터를 이용하면 반환값으로 여러개의 값을 받을수가 있음을 보여준다.
20130327_헤더파일응용편!
Main 함수 smart.c test.c Smart.h test.h 1. 먼저 파일들은 main.c , smart.c , test.c , smart.h , test.h Main.c 에서 #define _SMART_H_ 와 함께 원형을 불러온다. 그리고 메인함수안에 명령어로 AA( 3.4f ) 의 값을 알아오고, Test(); 의 값을 알아오고 싶다. ▼ 2. 먼저 AA( fNum(실수 3.4f) ) 이 정의 되어있는 곳으로 간다. #include "smart.h" 를 통해서 프로토타입을 선언해준 후에 함수의 void AA( float iNum)의 중괄호 사이에 printf() 문으로 그대로 실수 출력이 나오게 했다. 링크에 의해서 실행을 할때 불러와서 도스창에 출력을 해준다. ▼ 3. 다음으로 Test...