C 프로그래밍(39)
-
GPIO 프로그래밍 개요 - 3. 라이브러리 활용 (wiringPi, pigpio 등)
3. 라이브러리 활용 (wiringPi, pigpio 등)직접 제어 방식(sysfs)은 속도가 느리고 코드가 복잡하므로, 일반적으로 GPIO를 제어할 때 라이브러리를 활용하는 것이 더 효율적이다.라이브러리를 사용하면 더 간단하고 빠르게 GPIO를 제어할 수 있으며, PWM(펄스 폭 변조), 인터럽트(Interrupt) 같은 고급 기능도 쉽게 활용할 수 있다.대표적인 GPIO 제어 라이브러리로는 wiringPi, pigpio가 있으며, 각 라이브러리는 특정한 장점과 차이점을 가지고 있다.📌 wiringPi 라이브러리wiringPi는 C언어 기반 GPIO 제어 라이브러리로, 라즈베리파이에서 널리 사용되었다.하지만 라즈베리파이 OS 최신 버전(2020년 이후)에서는 기본 제공되지 않으며, 직접 설치해야 한다..
2025.02.25 -
C언어 초급 - 14장: 예제 프로젝트 및 실습 (14.3 메모장 프로그램)
14.3 메모장 프로그램동적 메모리 할당과 파일 입출력을 활용하여 메모장 기능을 구현합니다.✅ 프로그램 주요 기능메모 입력 후 파일에 저장파일에 저장된 메모 불러오기기존 메모에 내용 추가메모 삭제 (파일 초기화)동적 메모리 할당을 사용하여 메모 크기 제한 없음1. 동적 메모리 할당을 활용한 메모 저장 기능메모는 길이가 정해져 있지 않기 때문에, 동적 메모리 할당(malloc())을 사용하여 메모 크기를 유동적으로 조절합니다.📌 메모 입력 후 파일에 저장하는 기능#include #include #define FILE_NAME "memo.txt"// 메모 입력 및 파일 저장void saveMemo() { FILE *fp = fopen(FILE_NAME, "w"); // 새로 작성 모드("w") ..
2025.02.25 -
C언어 초급 - 14장: 예제 프로젝트 및 실습 (14.2 학생 성적 관리 프로그램)
14.2 학생 성적 관리 프로그램구조체와 파일 입출력을 활용하여 학생들의 성적을 관리하는 프로그램을 작성합니다.✅ 프로그램 주요 기능학생 정보(이름, 학번, 점수) 입력 및 파일 저장저장된 성적을 파일에서 불러와 출력학생 정보 추가, 수정, 삭제 기능파일을 사용하여 프로그램 종료 후에도 데이터 유지1. 학생 성적을 관리하기 위한 구조체 정의학생 정보를 저장하기 위해 구조체(struct) 를 사용합니다.#include #include #include // 학생 정보를 저장할 구조체 정의typedef struct { char name[30]; // 학생 이름 int id; // 학번 float score; // 성적} Student;#define FILE_NAME "st..
2025.02.25 -
탐색 - 1. 탐색(Search) 알고리즘 개요
📌 1. 탐색(Search) 알고리즘 개요1.1 탐색 알고리즘이란?탐색(Search) 알고리즘은 주어진 데이터에서 원하는 값을 찾는 과정을 의미합니다. 일반적으로 배열(Array), 연결 리스트(Linked List), 트리(Tree), 해시 테이블(Hash Table), 그래프(Graph)와 같은 자료구조에서 특정 값을 찾아야 할 때 탐색 알고리즘을 사용합니다.💡 예제전화번호부에서 특정 사람의 전화번호를 찾기파일 시스템에서 특정 파일을 검색하기데이터베이스에서 특정 정보를 검색하기탐색 알고리즘을 선택할 때는 데이터의 크기, 정렬 여부, 검색 속도 등을 고려해야 합니다.1.2 탐색 알고리즘의 종류 및 분류탐색 알고리즘은 크게 다음과 같이 분류할 수 있습니다.(1) 순차 탐색 (Linear Search)..
2025.02.24 -
C언어 초급 - 14장: 예제 프로젝트 및 실습 (14.1 계산기 프로그램 만들기)
14.1 계산기 프로그램 만들기*사용자 입력을 받아 사칙연산(+, -, , /)을 수행하는 간단한 C 프로그램을 작성합니다.✅ 프로그램 주요 기능사용자로부터 두 개의 숫자와 연산 기호 입력입력한 연산 기호에 따라 덧셈, 뺄셈, 곱셈, 나눗셈 수행나눗셈 수행 시 0으로 나누는 오류 방지잘못된 연산 기호 입력 시 오류 메시지 출력1. 기본 계산기 프로그램📌 사용자의 입력을 받아 사칙연산을 수행하는 기본적인 계산기 프로그램을 작성합니다.#include int main() { double num1, num2; char op; // 사용자 입력 받기 printf("첫 번째 숫자를 입력하세요: "); scanf("%lf", &num1); printf("연산자 (+, -, *..
2025.02.24 -
C언어 초급 - 13장: 구조체와 공용체 (13.2 공용체 (union))
13.2 공용체 (union)C 언어에서 공용체(Union) 는 구조체(Structure)와 유사하지만, 하나의 메모리 공간을 공유하는 데이터 타입입니다.공용체를 사용하면 서로 다른 데이터를 같은 메모리 공간에서 저장할 수 있어 메모리 사용을 최적화할 수 있습니다.1. 공용체(union)란?📌 공용체(union)는 구조체와 문법이 유사하지만, 모든 멤버가 동일한 메모리 공간을 공유한다는 점이 다릅니다.즉, 하나의 변수만 유효하며, 마지막으로 저장된 값만 유지됩니다.1.1 공용체 선언📌 기본 문법union 공용체이름 { 자료형 변수1; 자료형 변수2; ...};📌 공용체 선언 예제#include // 공용체 선언union Data { int i; float f; cha..
2025.02.24