일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 김성훈 교수님 PyTorch
- matlab 영상처리
- 영상처리
- 미디언 필터링
- c++
- pytorch
- object detection
- 해리스 코너 검출
- TensorFlow
- 모두의 딥러닝
- 골빈해커
- 딥러닝
- 컴퓨터 비전
- 딥러닝 스터디
- pytorch zero to all
- tensorflow 예제
- 가우시안 필터링
- 파이토치 강의 정리
- c언어
- MFC 프로그래밍
- 케라스 정리
- C언어 공부
- 팀프로젝트
- 모두의 딥러닝 예제
- c++공부
- 파이토치 김성훈 교수님 강의 정리
- Pytorch Lecture
- 파이토치
- c언어 정리
- 딥러닝 공부
- Today
- Total
목록C언어 공부 (8)
ComputerVision Jack
[선행 처리기와 매크로] 선행처리 컴파일 이전에 선행처리 과정이 존재한다. 삽입해 놓은 선행처리 명령대로 소스코드의 일부를 수정한다. (수정 : 단순 치환 의미) 선행 처리 명령문은 #으로 시작한다. 선행 처리기에 의해 처리되는 문장은 끝에 ; 붙이지 않는다. #define문 #define PI 3.1415 인 경우에 #define은 지시자를 지칭한다. 지시자는 매크로를 마지막에 등장하는 매크로 몸체로 치환하라는 의미를 갖는다. PI는 매크로(매크로 상수)에 해당하고 3.1415는 매크로 몸체를 의미한다. 이러한 매크로는 매개 변수가 존재하는 형태로 정의할 수 있다. (함수와 유사한 매크로) #define SQUARE(X) X * X 하지만 사칙연산에 대해 오류가 발생하지 않게 ( ) 를 이용하여 묶어주..
[메모리 구조] 프로그램 실행시, 메모리 공간이 운영체제에 의해서 준비된다. 이 메모리 공간에 변수가 선언되고 문자열이 선언된다. 메모리 구조 코드영역 데이터 영역 힙 영역 스택 영역 코드 영역(Code Area) 실행할 프로그램의 코드가 저장되는 메모리 공간 CPU는 코드 영역에 저장된 명령문을 하나씩 가져와서 실행한다. 데이터 영역(Data Area) 전역 변수와 static으로 선언되는 static변수가 할당된다. 프로그램 종료시까지 존재한다. 스택 영역(Stack Area) 지역 변수와 매개 변수가 할당된다. 함수 탈출시 소멸된다. 힙 영역(Heap Area) 프로그래머가 원하는 시점에 변수를 할당하고 소멸하도록 지원하는 영역 [메모리 동적 할당] 함수가 매번 호출될 떄마다 새롭게 할당되고 함수 ..
[구조체 정의 typedef선언] typedef선언 기존에 존재하는 자료형 이름에 새로운 이름을 부여하는 것. typedef로 정의되는 자료형의 이름은 대문자로 시작하는 것이 관례이다. typedef int INT; #기존 int자료형 사용에 대해 INT라고 표기가 가능해진다. 구조체와 typedef struct sample{ int x; int y; }; 기존 구조체 변수 선언 struct sample sp; typedef 구조체 변수 선언 typedef struct sample Sample; typedef struct sample{ int x; int y; } Sample; #처음 구조체를 정의할 때, typedef로 묶어도 된다. [구조체 변수 전달과 반환] 함수의 인자로 구조체 변수가 전달될 수 ..
[구조체] 구조체 하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 도구 구조체 기반으로 새로운 자료 정의 가능. 구조체 이름이 int나 double 처럼 자료형이된다. struct type_name val_name; #구조체 변수 선언의 기본적 형태 struct Sample{ char name[10]; int age; }; #위처럼 구조체를 정의하고, struct Sample sp; 처럼 구조체 변수를 선언한다. sp.age같이 구조체 내부에 접근이 가능하다. 구조체 멤버로 배열이 선언되면 배열의 접근 방식을 취하면 되고, 구조체의 멤버로 포인터 변수가 선언되면 포인터 변수의 접근 방식을 취하면 된다. 구조체 변수 선언 초기화. 구조체 변수 또한 선언과 동시에 초기화가 가능하다. 앞에서 정의한 Sam..
[포인터와 배열] 배열 이름 배열 이름은 포인터. 값을 바꿀 수 없는 상수 형태의 포인터이다. 따라서 배열의 이름은 배열의 시작 주소 값을 의미하며, 값 저장이 불가능한 상수다. 배열은 시작 주소만 알면 자료형을 통해 다음위치를 예측할 수 있기 때문이다. 배열 이름도 포인터이기 때문에 *연산이 가능하다. 포인터를 배열의 이름처럼 사용할 수 있다. int *ptr = &arr[0]; #ptr[0] = arr[0]과 같은 의미이다. [포인터 연산] 포인터는 *연산 이외에도 증가 감소 연산자도 사용할 수 있다. int형 포인터 1증가 - > 주소값 4 증가 double형 포인터 1증가 - > 주소값 8증가 *(++ptr) : ptr에 저장된 값 자체를 변경 *(ptr+ 1) : ptr에 저장된 값은 변경되지 ..
[C언어 조건문] if~else문 분기(조건)문의 기본이 되는 문. if문 : 독립적으로 사용되어 조건적 실행을 가능하게 한다. if문이 여러개 나열 되어 있을 때, 조건을 만족하는 if문이 발견되면 나머지 if문을 건너 뛴다. if(조건식) { } else문 : if와 더불어 하나의 문장을 구성하는 형태로 사용. if (조건식) { } else { } - 조건의 나머지 경우 else에서 처리 if~else if~ else문 if~else문은 두개의 블록 중 하나라를 선택해서 처리하는 구조, if ~ else if ~ else문은 셋 이상의 블록중 하나를 선택해서 처리하는 실행 구조. else if절은 얼마든지 추가할 수 있다. 조건이 만족하면 else까지도 건너 뛰고 실행된다. 삼 항 연산자(조건 연산..
[C언어 반복문] 반복문은 조건을 만족하는 동안, 특정 영역을 계속 반복하는 구조. while문 while문의 소괄호 안에는 반복의 조건을 명시하고, 조건이 만족되는 동안 중괄호 안에 존재하는 코드가 반복 실행되는 구조이다. while(조건식){ } 반복문 안은 들여쓰기를 사용하여 영역을 가시적으로 구분짓는다. 반복 대상이 하나인 경우 중괄호는 생략이 가능하다. while(조건) printf() 반복 조건안에 1을 사용하는 경우 무한루프를 실행한다. do~while문 do~while문도 반복문의 종류이다. 그러나 while문과는 반복의 조건을 검사하는 시점이 다르다. do~while문은 반복 영역을 최소 한번은 실행한다. do{ } while(조건); 따라서 절차적으로 접근한다고 하면 일반 while문은..
[C언어 Printf함수] printf로 큰 따옴표를 독자적으로 출력하는 경우 앞에 \문자를 붙인다. 이스케이프 시퀀스 다양한 이스케이프 시퀀스가 존재한다. 시퀀스를 탈출하여 따로 독자적인 출력을 지칭한다. printf()함수에는 서식을 지정하여 출력하는 의미가 담겨있다. 출력양식이 만들어진 상태에서 출력을 진행한다. 출력의 서식이란 보통 서식문자를 지칭한다. printf("%d %o %s, num1, num2, num3); [C언어 scanf함수] 입력형식을 지정할때도, 서식문자를 사용한다. 따라서 서식문자에 따라서 데이터를 입력 받는 방식이 달라진다. 문자열을 입력할 땐, %s서식문자를 기억해야한다. scanf("%d %o %x, &num1, &num2, &num3);