본문 바로가기

Embedded Programming/C/C++12

포인터 연산 * 포인터와 관련된 연산의 종류 연산 예 설명 할당 int *p = &a; 포인터에 주소값을 할당하는 것으로, 주소연산자 또는 포인터 상수(배열 이름)으로부터 나온 주소가 되어야 한다. 간접 *p = 6; 간접연산자(*)은 포인터로 지정된 위치에 값을 조작가능 주소 int x; int *px; int **ppx; px = &x; ppx = &px; 포인터 변수명에 주소연산자(&)를 붙이면 포인터 변수 자체의 주소가 된다. 주로 다차원 배열에 이를 이용할 수 있다. 증가 int *p;p++;(4byte 증가) p += 4;(16byte 증가) 포인터의 자료형 크기만큼 가리키는 주소값을 증가시킬 수 있다. (int *: 4byte, short *: 2byte, char *: 1byte…) 감소 int *p;.. 2013. 4. 2.
배열과 포인터 * 배열이란? - 배열은 연관성 있는 자료를 한가지 자료형으로 연결시킨 것이라 할 수 있다. 위의 배열 변수 선언문은 int형 변수 10개를 array란 이름으로 묶은 것이다. 위의 array 배열은 메모리에 연속해서 아래 그림과 같이 공간을 할당받는다. int의 크기인 4 byte 크기로 연속하여 주소를 할당받는 것이다.그리고 크기가 10인 위의 array배열과 같은 경우에는 색인(index 또는 배열 번호)이 0부터 9까지 할당된다.각 색인으로 배열의 값에 직접 접근할 수 있다.예) array[0] = 10; // array의 0번 자료에 10을 대입함. * 배열의 초기화배열을 초기화 할때는 숫자 자료형 배열일 경우에는int array[10] = {10, 20, 30, 40, 50, 60, 70, 8.. 2013. 4. 1.
다수의 파일로 나누어 작업하기(header file 만들기) #include void AA(float); int main() { AA(3.14f); return 0; } void AA(float fNum) { printf("fNum : %f\n", fNum); } 위의 코드를 함수 별로 나누어 저장하면 main()함수와 AA()함수를 각각의 .c파일에 따로 저장하고이를 공통으로 include 해주는 헤더파일 .h를 만들어주면 된다.그리고 헤더파일에는 함수의 정의부분을 선언해주면 된다. 이렇게 나누어진 파일은 cl /c @@@.c 형태로 분할 컴파일 해준 후cl ***.obj ###.obj 형식으로 링크해주면 하나의 실행파일을 만들 수 있다. 위에서 cl /c 파일명.c 형태의 분할 컴파일은 아래 그림의 ①②③단계에 해당한다.전처리 과정에서 헤더를 포함시키고 그것을.. 2013. 3. 26.
C언어 함수(function)의 기초 (함수의 구성, 정의, 호출) 함수(function)란? - 함수란 영어 function에서 온 말인데 이 뜻은 "기능"을 뜻한다. 즉, 기능을 구현하는 부분을 따로 떼어 구현하는 것으로, 구조화 프로그램의 중요한 개념이라 하겠다. 함수의 기본 형태 함수의 형태는 우선 우리에게 친숙한 main 함수를 예로 들어보겠다. 함수는 윗 그림과 같이 반환 자료형과 함수이름, 인수목록으로 나뉜다. 반환 자료형이란 메인함수의 사용에서 return 0; 부분을 보면 0을 반환한다는 말인데 정수형을 반환하므로 여기서 int로 쓰였다. 그리고 함수 이름은 main 함수의 경우 프로그램 실행시 가장 먼저 실행되는 부분이므로꼭 필요한 함수로 변경할 수 없지만 사용자 정의 함수의 경우에는 일반적인 명명규칙에 따라 사용자가 지정해줄 수 있다. 인수 목록은 m.. 2013. 3. 26.