| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 동적계획법
- kotlin
- 2018 KAKAO BLIND RECRUITMENT
- 프로그래머스
- C
- java
- dp
- 누적합
- lv2
- level2
- cpp
- 구현
- 자바
- 코틀린
- 그리디
- dfs
- 컴퓨터 비전
- 우선순위큐
- 통신 인터페이스
- c++
- level3
- 컴퓨터비전
- JavaScript
- 이분탐색
- 백준
- 임베디드
- 다이나믹 프로그래밍
- Stack
- BFS
- 다이나믹프로그래밍
- Today
- Total
목록C (3)
코드를 느껴바라
1. float와 double의 정밀도자료형유효 정밀도특징float약 7~10자리단정밀도 실수, 메모리 4바이트double약 15~20자리배정밀도 실수, 메모리 8바이트float는 메모리를 적게 사용하지만 정밀도가 낮고,double은 더 많은 메모리를 사용하지만 훨씬 높은 정밀도를 가진다.정확한 수치 계산이 필요한 경우 double을 사용하는 것이 기본 원칙이다.2. C에서의 bool 타입C 언어에는 원래 논리 자료형이 존재하지 않는다.따라서 stdbool.h 헤더를 포함해야 bool, true, false를 사용할 수 있다.#include bool flag = true;내부적으로는 bool은 unsigned char로 구현되어 있다.3. 선언과 정의의 차이구분의미선언 (Declaration)“이런 게 ..
C언어에는 class가 없다.그럼 구조체로 자료형을 정의하고 생성을 했을 때 어떻게 초기화할까?하나 하나 값을 초기화 해주고 생성해주는 것은 너무 번거롭다.그래서 생성자의 역할을 해주는 함수에서 초기화해줄 변수에 대해서깊은 복사와 동적할당이 필요하다면 진행해주는 것이 좋다고 생각했다.실제로 glibc, POSIX 라이브러리, 유닉스 계열 커널 구조체들이 이 생명주기 규약을 따른다.init() → malloc + deep copydestroy() → free그래서 나도 person이라는 구조체를 만들어서 구현을 해보았다.person 구조체 선언typedef struct { int age; char* name;} person;person 구조체에서는 나이와 사람의 이름을 char 배열의 첫 주소..
대형 C 언어 프로그램과 모듈화의 필요성대형 C 언어 프로그램을 개발할 때 모듈화는 선택이 아니라 필수다.코드 규모가 커질수록 다음과 같은 문제가 발생합니다.하나의 파일에 로직이 집중되어 가독성 저하기능 수정 시 연쇄적인 버그 발생테스트와 유지보수가 어려워짐협업 시 코드 충돌 증가이러한 문제를 해결하기 위한 핵심 개념이 바로 모듈화입니다.OOP 언어에서는 어떻게 모듈화할까?C++, Java와 같은 객체지향 언어에서는 보통 다음과 같은 방식으로 모듈화를 진행합니다.InterfaceAbstract Class다형성(Polymorphism)이를 통해 구현과 사용을 분리하고, 의존성을 낮춘 구조를 만들 수 있습니다.그렇다면 절차지향 언어의 대표 주자 C 언어는 어떨까요?C 언어에는 Interface가 없다C 언어..