본문 바로가기

프로그래밍181

[C언어] typedef 이란 무엇인가 typedef 이란 이미 사용되는 자료형을 다른 새로운 자료형 이름으로 재정의 할 수 있도록 하는 키워드이다. 쉽게 말하자면, 자료형에 별명을 붙혀주는 것이다. typedef int hihi; hihi a = 10; // hihi는 int형 이런식으로 표현할 수 있게 된다. 여기까지는 너무 쉽다. 그럼 typedef를 왜 쓸까? 구조체의 이름이 길거나, 프로그램 확장성을 위해 사용한다. 만약 int가 4바이트로 할당되는 개발환경을 사용하다가, int가 2바이트로 할당 되는 개발환경으로 갑자기 바꿔야한다면 일일히 모든 코드의 자료형을 수정해야 할 것이다. 하지만 typedef로 선언해 놓는다면, 1줄만 수정하면 된다. 아래는 위키백과에서 퍼온 typedef의 정보이다. typedef는 C와 C++ 프로그래.. 2021. 1. 19.
[C언어] 배열포인터와 포인터배열의 차이 코딩을 하다보면 가끔씩 포인터를 쓸 일이 있다. 그런데 항상 배열포인터와 포인터배열을 헷갈린다. 배열포인터 : Pointer To Array 배열을 가리키는 포인터 포인터배열 : Array Of Pointer 포인터들의 배열 우선 각각의 사용법을 알아보겠다. 1차원 배열 2차원 배열 (배열포인터) 2차원 배열 (포인터배열) int arr[3] = {1, 2, 3, 4, 5}; int *ptr = arr; int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int (*ptr)[3] = arr; int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int *ptr[3] = arr; 알다시피 1차원 배열은 헷갈리지 않고 선언 할 수 있다. 하지만 배열포인.. 2021. 1. 16.
[자료구조] 간단한 Linked List 설명 자Linked List는 말 그대로 Data와 Data간의 Link를 통해서 List를 구현한 것이다. 짜장면 시켜먹으려고 쿠폰북에서 짜장면집 전화번호 일일이 찾는거랑, 114에 전화해서 알아내는 것. 일반 배열과 , Linked list는 그런 차이라고 생각하면 쉽다. Linked list에서 각 노드들은 (자신들의 데이터, 다음 노드의 주소값)을 가지고 있다. 다음 노드의 주소값이 114 역할을 해주고 있는것이다. Linked list를 구현하려면 적어도 3가지 이상의 함수를 만들어야한다. Insert, Delete, Search 함수이다. 2021. 1. 16.
[자료구조] Hash에 대한 간단한 이해 자Hash란? 데이터 관리, 유지를 위한 자료구조. 전화번호부, 투표시스템에 사용되기도 함. 만약 내가 Apple, Banana, Cow라는 세 개의 단어를 입력 시 이 단어는 Hash 함수를 거쳐, Hash code가 된다. 아래의 표를 참고해보자. Index Value A Apple B Banana C Cow D NULL Hash함수가 어떻게 구현이 되었는지 대충 느낌이 올 것이다. 근데 만약 여기서 ABCD라는 단어를 추가로 입력하게 된다면 어떻게 될까? Hash Table에 A인덱스에는 이미 Apple이라는 Value가 있다. 그럼 이때 충돌이라는 현상이 발생하게 된다. 충돌을 해결하는 굉장히 많은 알고리즘이 있다. 하지만 이 글에서는 가장 대중적인 분리연결법(Separate Chaining)을 .. 2021. 1. 16.
[아두이노] Key Pad를 이용한 도어락 #define keyPad_col0 8 // 3*4 KeyPad Pin3 #define keyPad_col1 6 // 3*4 KeyPad Pin1 #define keyPad_col2 10 // 3*4 KeyPad Pin5 #define keyPad_row0 7 // 3*4 KeyPad Pin2 #define keyPad_row1 5 // 3*4 KeyPad Pin7 #define keyPad_row2 11 // 3*4 KeyPad Pin6 #define keyPad_row3 9 // 3*4 KeyPad Pin4 #define relay_pin 4 int keyPad_NUM = 0; // 입력받은 숫자 저장 int pw[20] = {2,5,6,11,12 }; // 0 -> 11, # -> 12; int t.. 2021. 1. 8.
[아두이노] 3*4 Key Pad 사용법 -------------------------- Chip : 아두이노 나노 Program : Arduino IDE 1.8.13 Module : 3*4 KeyPad -------------------------- 아래는 3*4 키패드의 핀구성도이다. 나는 Col0~Col2를 출력으로 쓰고, Row0~Row3을 입력으로 쓰기로 했다. (반대가 되어도 상관없다) 아래는 회로도이다. KeyPad는 9핀이지만 양쪽을 제외한 가운데 7핀만 사용해서 구현할 수 있다. 아두이노는 자체적으로 내부 풀업 저항을 지원한다. 따라서 별다른 저항 없이도 회로를 꾸밀 수 있다. https://hyun222.tistory.com/9 [전자회로] 스위치의 Pull-UP, Pull-Down 아두이노나 Atmega를 이용한 DIY시 스.. 2021. 1. 7.