일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스 lv2
- c언어
- Patch Cleaner
- 조건 제어문
- ASCCII
- 심도
- C Mount
- image sensor
- 저장소와 동적메모리
- Digital Slow Shutter
- 카메라
- main 함수 인자 전달
- 고정비트레이트
- Pixel Bit Format
- 간단한 앱만들어보기
- camera
- Gain
- 실생활알고리즘
- 무게선별자동화
- 렌즈
- CS Mount
- AppInventer
- 아이리스
- 이미지센서
- Zoom Lense
- 변수
- 저조도
- 과초점거리
- 변수의 초기화와 대입
- Depth of Fileld
- Today
- Total
목록Langauge (30)
카메라 개발자 공부방(SW)
자 오늘은 포인터와 배열의 예제 코드를 작성해보는 시간을 가져보겠습니다. #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..
오늘은 포인터에 이어서 배열에 대해 공부하겠습니다. (배열과 포인터는 아주 밀접한 관계가 있기 때문에 포인터와 마찬가지로 집중해서 공부해야 될 부분입니다.) 자 그러면 배열은 무엇일까요? 배열은 연속된 메모리 공간을 의미하고, 선언해야 될 변수의 개수가 많을 때 사용됩니다. 선언해야 될 변수의 개수가 많은데, 변수를 일일이 선언하게 된다면 반복되는 코드가 많이 늘어나고 코드 관리가 어렵게 됩니다. (코드는 가독성이 생명입니다.) 그래서 배열이 필요한 것입니다. 배열은 아래와 같이 선언할 수 있습니다. dataType arrayName[size]; // example int arr[5] = {}; arr이란 이름의 배열의 선언 됐고 data type은 int이며 5가개 선언됐다는 뜻입니다. #include..
자 오늘은 대망의 포인터 변수를 시작할 차례입니다. 오늘 하는 내용이 어렵게 느껴진다면 [9장] 변수와 주소를 꼭 복습해주세요. 포인터 변수는 주소를 저장하는 메모리 공간입니다. 포인터 변수도 변수기 때문에 메모리 공간(값)이 변경될 수 있고, 그 메모리에 접근할 수 있는 이름도 가지고 있습니다. 다음 코드를 보시죠 #include int main() { int n = 10; int* pn = &n; printf("%d %p %p\n", 10, &n, pn); return 0; } // 실행결과 // 10 008FF91C 008FF91C n이라는 메모리 공간의 시작 주소가 pn이라는 메모리 공간에 저장이 된 것입니다. 이때 포인터 변수 pn은 n이라는 메모리 공간을 가리킨다 라고 이야기할 수 있습니다. ..
자 다음은 변수와 주소에 대해 이야기해보겠습니다. 이 개념을 제대로 파악하지 못하면 다음 과정을 하는 것이 전혀 의미가 없을 정도로 굉장히 중요하니 집중하고 봅시다~! 모든 메모리에는 주소가 있습니다. 그리고 이 주소는 1byte마다 하나씩 할당되어있습니다. #include int main() { int n = 8; printf("%d\n", n); printf("%p\n", &n); return 0; } // 실행결과 // 8 // 00B9FAE0 위의 예제는 변수의 메모리 공간 주소를 출력하는 코드입니다. (%p 서식문자는 메모리의 주소를 출력할 때 사용됩니다.) n이라는 메모리 공간을 아래와 같이 그려보면 다음과 아래와 같습니다. n은 주소가 00B9FAE0로 시작되고 1byte 당 address가..
오늘은 사용자 함수에 대해 공부해보겠습니다. 지금까진 우리는 main이라는 함수의 내용(구현부)을 채워가며 실습을 해봤습니다. C언어에서 함수의 비중이 큰 만큼 명칭 하나하나 자세히 보겠습니다. returnType functionName(parameter) { /* your code */ return value; } 반환(return)이란 이 함수가 종료될 때 계산된 결과값을 다시 돌려준다는 의미입니다.(정확히는 함수를 호출했던 지점에 함수의 결과 값을 되돌려줍니다.) 반환이 있다면 반환 타입(returnType)과 return에 어떤 값을 반환할지 명시해야 합니다. 반환 타입이 없다면 반환 타입이 없다는 뜻으로 void로 선언하면 됩니다. 그리고 return도 없습니다. 함수의 이름(functionNa..
자 오늘은 변수의 초기화와 대입에 대해서 공부를 해보겠습니다. 초기화와 대입에는 큰 차이가 있는데요. 초기화는 메모리 공간이 만들어진 시점에 단 한번 값을 저장을 합니다. 대입은 메모리 공간이 만들어진 시점 이후에 메모리의 값을 변경시키는 연산입니다. 초기화는 단 한 번만 발생되고, 대입은 무한히 발생할 수 있습니다. 그런데 초기화를 하지 않으면, 메모리 안에는 어떤 값이 들어있을까요? 바로 쓰레기 값이 들어있답니다. #include int main() { int val; printf("val: %d\n", val); return 0; } // 실행결과 // 쓰레기값 출력 이 쓰레기 값은 runtime에 runtime error를 발생시킬 수 있습니다. 컴파일 에러는 작성한 코드가 컴파일 과정에 문제가 ..