일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Patch Cleaner
- CS Mount
- 렌즈
- 고정비트레이트
- 변수의 초기화와 대입
- ASCCII
- Pixel Bit Format
- AppInventer
- 과초점거리
- 프로그래머스 lv2
- 무게선별자동화
- 저조도
- Zoom Lense
- Digital Slow Shutter
- camera
- 변수
- 실생활알고리즘
- c언어
- 아이리스
- 심도
- 저장소와 동적메모리
- 카메라
- C Mount
- 조건 제어문
- Gain
- 간단한 앱만들어보기
- image sensor
- Depth of Fileld
- main 함수 인자 전달
- 이미지센서
- Today
- Total
목록c언어 (27)
카메라 개발자 공부방(SW)
자 오늘은 저장소에 관한 내용과 동적 메모리에 대해 이야기해보겠습니다. 프로그램은 적절한 명령을 통해 주어진 데이터로 가공해서 원하는 결과를 내는 것이 주 역할입니다~! 그런 의미에서 프로그램은 큰 범주에서 명령어와 데이터로 나눌 수 있습니다. 프로그램에 따라 데이터는 1) 잠깐만 필요한 경우가 있고, 2) 프로그램 전반에 메모리가 필요하거나 3) 프로그램이 종료되더라도 계속 살아있어야 되는 경우가 있습니다. 1) 메모리가 잠깐만 필요한 경우 - 연산 과정 중에 나오는 결과를 저장해야 되는 경우 2) 프로그램 전반에 메모리가 필요한 경우 - 메모리가 계속 살아있어야지만 application을 운용할 수 있는 경우 3) 프로그램이 종료되더라도 살아있어야 되는 메모리인 경우 - 파일에 저장된 데이터 - Da..
오늘은 아스키코드에 대한 이야기를 해보겠습니다. 문자를 표시하기 위해서 프로그래밍 언어에선 특정 비트를 어떤 문자로 표현할지 미리 다 약속이 되어있답니다. 예를 들어 1100001는 'A' 문자 ~ 그다음 1100002는 'B' 문자 그다음 1100003는 'C' 문자라고 이미 다 약속이 되어 있는데 그것을 정리한 표가 ASCII 테이블입니다. ASCII는 미국정보교환표준부호의 약자로 미국 표준 협회(ASA)가 주도한 x3 위원회가 개발하고, 표준화가 되어서 현재 까지 널리 사용 중에 있습니다. 아스키코드는 위의 표와 같이 출력 가능한 문자와 아래와 같이 그렇지 못한 문자들의 집합으로 구성됩니다. 이번에는 코드를 보겠습니다. #include int main() { char val = 'A'; printf..
이번 시간은 string.h를 활용한 문자열 처리에 대해 공부해보겠습니다. 에는 문자열을 손쉽게 처리하기 위한 함수들이 내장되어있습니다. 그중에서 우린 문자열 복사, 길이, 덧붙이기, 탐색에 대해 살펴보겠습니다. 문자열 복사는 strcpy 함수로 가능합니다. strcpy 첫 번째 인자는 복사될 메모리 주소(Destination) 두 번째 인자는 복사할 문자열 주소(Source)입니다. #define _CRT_SECURE_NO_WARNINGS #include #include int main() { const char* pStr = "Hello World"; char buf[32] = {}; strcpy(buf, pStr); printf("%s", buf); return 0; } // 실행결과 // Hell..
자 오늘은 문자열에 대한 내용 주로 다루겠습니다. 문자와 문자열의 차이를 꼭 아셔야 됩니다. 문자는 값입니다. 문자열은 문자들의 집합입니다. (너무나도 당연한 소리 같죠?) #include int main() { printf("%c\n", 'A'); printf("%s\n", "Hello World\n"); return 0; } // 실행결과 // A // Hello World 자 이제 집중하셔서 보셔야됩니다. 문자열은 첫 번째 문자를 가리키는 상수 포인터입니다. #include int main() { printf("%p\n", "Hello World\n"); return 0; } // 실행결과 // 008EF91C 주소 연산자를 하는 서식 문자(%p)를 사용해보면 "Hello World"의 주소가 출력..
자 오늘은 포인터의 포인터를 공부해볼 시간입니다. 앞장의 포인터 변수를 꼭 공부를 한 후 찾아와 주세요. 포인터 변수도 어떤 값을 저장하는 메모리 공간(변수)이기 때문에 1바이트마다 주소가 있습니다. 다음 코드를 보시죠 #include int main() { int n = 10; int *pn = &n; int **ppn = &pn; printf("%p %p %p %p\n", &n, pn, &pn, ppn); return 0; } // 실행결과 // 008EF91C 008EF91C 008FF91C 008FF91C ppn이란 이름의 메모리는 pn의 메모리 공간의 주소를 저장하고 있습니다. int*의 address type만 저장시킬 수 있습니다. (pn이란 이름의 메모리 공간은 int*의 address t..
자 오늘은 포인터와 배열의 예제 코드를 작성해보는 시간을 가져보겠습니다. #include int main() { int arr[4] = {1, 2, 3, 4}; int* parr = arr; for (int k = 0; k < 4; k++) printf("%d ", parr[k]); return 0; } // 실행 결과 // 1 2 3 4 배열의 이름은 첫 번째 요소의 주소입니다. (익숙하지 않으시다면 9-10장을 꼭 복습해주세요.) parr(포인터 변수)에 arr의 주소를 저장해서 모든 원소를 출력하였습니다. #include int main() { int arr[4] = {1, 2, 3, 4}; int* parr = &arr[2]; printf("%d %d\n", parr[1], *arr); retur..