[C/C++ Tip] 20. C언어 조건문 마스터하기 : Switch문
·
Language/C언어
Switch문C언어에서 switch문은 여러 조건 분기를 관리하는 데 있어 매우 유용한 도구이다. 특히, 하나의 변수를 여러 값과 비교해야 할 때 if-else문보다 더 간결하고 명확한 코드를 작성할 수 있게 해준다. 이번 포스팅에서는 switch문의 기본 사용법, 장점, 그리고 주의해야 할 사항에 대해 자세히 알아보겠다.⭐ 1. Switch문 기본 사용법switch문은 표현식의 결과값에 따라 다양한 분기(case)로 코드의 실행 경로를 결정한다. 기본 구조는 다음과 같다.switch (표현식) { case 값1: // 값1일 때 실행할 코드 break; case 값2: // 값2일 때 실행할 코드 break; // 여러 case 추가 가..
[C/C++ Tip] 19. C언어 조건문 마스터하기 : 삼항연산자
·
Language/C언어
삼항연산자C언어에서 삼항 연산자는 조건문을 더 간결하게 표현할 수 있는 유용한 도구이다. 기본 구조는 조건 ? 참일 때의 값 : 거짓일 때의 값으로, 조건이 참이면 첫 번째 값을, 거짓이면 두 번째 값을 반환한다. 이 포스팅에서는 삼항 연산자의 사용법과 if문과 비교했을 때의 장단점을 살펴본다.⭐1. 삼항 연산자 사용법삼항 연산자는 주로 간단한 조건에 따른 값을 선택할 때 사용된다. 예를 들어, 두 수 중 큰 수를 찾거나, 조건에 따라 변수에 다른 값을 할당하는 경우 등에 사용할 수 있다int max = (a > b) ? a : b; // a와 b 중 더 큰 값을 max에 할당⭐2. 삼항 연산자 장점간결성: 삼항 연산자는 if-else문에 비해 더 간결한 코드를 작성할 수 있다.표현력: 한 줄로 조건에 ..
[C/C++ Tip] 18. C언어 조건문 마스터하기 : if문의 모든 것!
·
Language/C언어
조건문 IF문조건문은 프로그래밍에서 데이터에 따른 의사 결정을 가능하게 하는 핵심적인 요소이다. C언어에서는 if문, 삼항 연산자, switch문 등 다양한 조건문을 제공한다. 이 중 if문은 가장 기본적이면서도 언어 상관 여부 없이 가장 중요한 문법이다. 오늘은 if문의 구조, 사용 방법, 그리고 실제 예제를 통해 if문의 모든 것을 살펴본다.⭐1. if문의 중요성조건문은 프로그램의 흐름을 제어하는데 있어 필수적인 요소이다. if문은 주어진 조건이 참인 경우에만 특정 코드 블록을 실행하게 한다. 이는 데이터에 따른 다른 동작을 해야 할 때, 예를 들어 사용자 입력 검증이나 오류 처리 등에서 매우 유용하게 사용된다. (C언어는 try catch 문이 없음.)⭐2. if문의 구조if문은 다음과 같은 기본 ..
[C/C++ Tip] 17. Static 변수와 Extern 변수의 차이점
·
Language/C언어
extern (고급)Static 변수와 Extern 변수는 C언어에서 변수의 스코프(visibility)와 생명 주기(lifetime)를 관리하는 데 사용되는 키워드이다. 이 둘의 주요 차이점은 다음과 같다:Static 변수:스코프: Static 변수는 선언된 범위(함수 내부 또는 파일 내부)에 제한된다.생명 주기: 프로그램 실행 시작 시 할당되고 프로그램 종료 시 해제된다.목적: 같은 파일 내에서만 접근 가능한 변수를 만들거나, 함수 호출 간 상태를 유지할 수 있는 지역 변수를 선언하는 데 사용된다.Extern 변수:스코프: Extern 키워드는 다른 파일에 정의된 전역 변수나 함수를 참조하는 데 사용된다.생명 주기: 해당 변수가 정의된 파일 내에서 프로그램 실행 시작 시 할당되고 프로그램 종료 시 해..
[C/C++ Tip] 15. extern 기본
·
Language/C언어
Extern (초급)C언어에서 extern 키워드는 다른 파일에 정의된 전역 변수나 함수를 참조할 수 있도록 해준다. 이는 프로그램의 여러 파일 간에 변수나 함수를 공유할 때 매우 유용하다. extern의 사용은 큰 프로젝트에서 소스 코드를 모듈화하고 관리하기 쉽게 만들어 준다.⭐1. extern 사용 예제다음 예제에서는 두 개의 파일을 사용하여 extern의 기본적인 사용 방법을 보여준다.main.c#include // 다른 파일에서 정의된 변수를 참조하기 위해 extern 사용extern int sharedVar;int main() { printf("Shared Variable: %d\n", sharedVar); return 0;}shared.c// sharedVar는 이 파일에서 정의되며..
[C/C++ Tip] 14. 동적 메모리 할당
·
Language/C언어
동적 메모리 할당C언어에서 동적 배열은 프로그램 실행 중에 배열의 크기를 결정하고 메모리를 할당할 수 있게 해주는 매우 유용한 기능이다. 동적 배열은 malloc, calloc, 또는 realloc 함수를 사용하여 힙(Heap) 영역에 메모리를 할당함으로써 생성된다. 이러한 방식은 정적 배열과 달리, 실행 시간에 배열의 크기를 유연하게 조절할 수 있게 해준다.⭐1. 필요성유연성: 프로그램 실행 중에 배열의 크기를 결정할 수 있으므로, 사용자 입력이나 다른 실행 시간 데이터에 기반한 메모리 할당이 가능하다.메모리 효율성: 필요한 만큼의 메모리만 할당하여 사용하므로, 메모리 낭비를 줄일 수 있다.⭐2. 메모리적인 관리의 장점 및 단점2.1. 장점 메모리 최적화: 정적 배열과 달리, 필요한 만큼의 메모리만 사..
[C/C++ Tip] 13. MCU 제어를 위한 비트 연산
·
Language/C언어
MCU 제어를 위한 비트 연산펌웨어는 하드웨어를 제어하는 소프트웨어로, 보통 임베디드 시스템, 마이크로컨트롤러, 다양한 전자 장비 등에서 작동한다. 펌웨어 개발에서 하드웨어의 세밀한 제어가 필요할 때, 비트 연산은 그 대표적인 방법중 하나이다. C언어의 비트 연산자를 사용하면 레지스터 설정과 같은 저수준 작업을 효율적으로 처리할 수 있다. 이러한 연산자에는 AND(&), OR(|), XOR(^), NOT(~), 비트 시프트(>) 등이 있다. 각 연산자의 사용 예를 통해, 어떻게 이들을 활용하여 펌웨어 코드를 작성하는지 살펴본다.⭐1. 비트 연산의 장점직접적인 하드웨어 제어: 비트 단위로 하드웨어 레지스터를 직접 조작할 수 있다.메모리 및 처리 속도 효율성: 불필요한 메모리 접근을 줄이고, CPU의 비트 ..
[C/C++ Tip] 12. 포인터가 헷갈릴 수 밖에 없는 이유: 별(*)의 종류와 정체
·
Language/C언어
C언어 포인터의 이해 2편C언어를 배우면서 가장 많이 혼란을 겪는 주제 중 하나가 바로 포인터이다. 특히 * 기호의 다양한 역할이 이 혼란의 주범이다. 이 포스팅에서는 * 기호가 가지는 세 가지 역할을 친절하게 설명함으로써 포인터에 대한 당신의 이해를 한 단계 업그레이드시킬 것이다.⭐1. 포인터 변수 선언: *의 첫 번째 정체포인터를 선언할 때 *를 사용하는 이유는, 단순히 "이 변수는 메모리 주소를 저장한다"는 사실을 나타내기 위함이다. int* ptr;라고 선언하면, "ptr은 정수의 주소를 저장하는 변수"라는 의미가 된다. 여기서 *는 포인터 변수의 타입 부분에 포함되어, 이 변수가 "주소"를 저장하는 특별한 종류의 변수임을 알려주는 역할을 한다.⭐2. 역참조 연산자: *의 두 번째 정체변수 앞에 ..
[C/C++ Tip] 11. C언어 포인터 기본 사용법
·
Language/C언어
C언어 포인터의 이해 1편포인터는 C언어를 배우는 사람에게는 종종 어려움을 주는 주제 중 하나이다. 복잡해 보이지만 한 번 이해하면 강력한 도구가 될 수 있다. 이 포스팅에서는 포인터의 기본 개념을 쉽게 풀어 설명하고, 몇 가지 팁과 함께 실제 코드 예시를 통해 그 사용법을 알아보겠다. ⭐1. 포인터란 무엇인가?포인터는 간단히 말해, 메모리 주소를 저장하는 변수이다. 즉, 포인터를 통해 다른 변수의 위치를 알고, 그 위치에 접근하여 값을 읽거나 변경할 수 있다. C언어에서 포인터는 데이터의 동적 관리와 복잡한 데이터 구조의 구현에 필수적인 요소이다.⭐2. 포인터의 선언포인터를 선언하는 방법은 다음과 같다.타입 *포인터변수명;예를 들어, int형 데이터를 가리키는 포인터를 선언하고 싶다면 다음과 같다.in..
[C/C++ Tip] 10. Call by Value vs Call by Reference
·
Language/C언어
Call by  Value Vs Call by Reference프로그래밍, 특히 C언어에서 'Call by Value'와 'Call by Reference'의 개념은 기본적이면서도 핵심적인 부분이다. 이 두 호출 방식의 차이점을 이해하는 것은 다음과 같은 이유로 중요하다. 1. 코드의 안정성 보장'Call by Value'는 함수에 변수의 복사본을 전달함으로써 원본 데이터를 안전하게 보호한다. 이는 원하지 않는 데이터 변경으로부터 값들을 보호하는 데 필수적이다. 반면, 'Call by Reference'는 원본 데이터에 직접 영향을 줄 수 있기 때문에, 데이터를 의도적으로 변경하고자 할 때 유용하다. 이 두 방식을 적절히 사용함으로써 프로그램의 안정성과 예측 가능성을 높일 수 있다. 2. 메모리와 성능 ..
18진수
'C언어' 태그의 글 목록