[C/C++ Tip] 30. C언어 Unit Test 종류
·
C언어 30강
단위 테스트 종류위 테스트의 각 유형을 좀 더 상세하게 설명하고, 각 유형이 어떤 문제를 잡기 위해 사용되는지, 그리고 각각에 대한 깔끔한 코드 예제를 제공하겠다. 여기서는 간단한 함수를 사용하여 여러 단위 테스트에 대해 설명한다.⭐ 1. 대상 함수// calculateDiscount 함수는 구매 금액(amount)에 따라 할인율을 적용함.// 100 이상일 때는 10% 할인, 50 이상 100 미만일 때는 5% 할인, 그 외에는 할인 없음.double calculateDiscount(double amount) { if (amount >= 100) return amount * 0.9; else if (amount >= 50) return amount * 0.95; else return a..
[C/C++ Tip] 29. C언어 Unit Test
·
C언어 30강
Unit TestC언어에서 단위 테스트(Unit Test)를 구현하는 방법 중 하나는 간단한 함수와 함께 assert 매크로를 사용하는 것이다. assert 매크로는 조건이 참이 아닐 경우 프로그램을 종료시키므로, 예상된 결과가 실제 결과와 일치하는지 검증하는 데 유용하다. 더 복잡한 테스트 요구 사항이 있는 경우, C언어용 테스트 프레임워크(예: CUnit, Unity, CMocka 등)를 사용할 수 있다. 여기에는 간단한 add 함수와 이 함수에 대한 단위 테스트 예제가 포함되어 있다. 이 예제는 assert를 사용하여 구현된다. asset 함수를 사용하기 위해선 assert.h를 include 해야 한다.#include #include // 간단한 덧셈 함수 정의int add(int a, int b..
[C/C++ Tip] 28. C언어 포인터의 다양한 표현들
·
C언어 30강
포인터의 다양한 표현C언어의 포인터를 이해하고 활용하는 것은 처음 접하는 사람들에게 다소 어려울 수 있는데, 그 중 하나의 원인은 여러가지 다양한 표현법 때문이다. 특히, 같은 메모리 주소를 가리키는 다양한 방법이 존재하는데, 이는 때로는 혼란을 줄 수 있다. 여기 몇 가지 대표적인 예시를 들어본다.⭐ 1. 배열의 첫 번째 요소의 주소int A[10];표현법 1: A​배열의 이름만 사용하면, 배열의 첫 번째 요소의 주소를 나타낸다.표현법 2: &A[0]배열의 첫 번째 요소의 주소를 명시적으로 나타낸다.⭐ 2. 함수 포인터int func(int x) { return x * 2;}표현법 1: ​func함수 이름만을 사용하여 해당 함수의 주소를 나타낸다.표현법 2: &func함수의 주소를 명시적으로 나타내기..
[C/C++ Tip] 27. C언어 데이터 형식 범위
·
C언어 30강
데이터 형식의 범위C언어는 다양한 데이터 타입을 제공하며, 이러한 데이터 타입들은 메모리의 효율적 사용과 연산의 정확성을 위해 설계되었다. 각 데이터 타입은 표현할 수 있는 값의 범위가 정해져 있으며, 이는 해당 타입이 메모리에서 차지하는 바이트 크기에 의해 결정된. C언어의 기본 단위는 1바이트이며, 여기서 1바이트는 8비트와 동일하다. 아래에서는 몇 가지 주요 데이터 타입의 최소값과 최대값을 살펴보겠다. 이 값들은 데이터 타입이 양수만을 저장할 수 있는지(부호 없음, unsigned), 아니면 음수와 양수 모두를 저장할 수 있는지(부호 있음, signed)에 따라 달라진다. 이 예시에서는 일반적인 32비트 및 64비트 시스템을 기준으로 설명한다.⭐ 1. unsigned char크기: 1바이트 (8비트..
[C/C++ Tip] 26. Char, String 기본 사용법
·
C언어 30강
char, stringC언어에서 char과 string의 개념은 상당히 기본적이면서도 중요하다. 이 두 가지는 데이터를 다룰 때 자주 사용되기 때문에 그 차이점을 이해하는 것이 중요하다.⭐ 1. charchar은 C언어에서 한 개의 문자를 저장하기 위한 데이터 타입이다.메모리에서 1바이트(대부분의 시스템에서)를 차지한다.단일 따옴표(' ')를 사용하여 표현한다. 예: char letter = 'A';⭐ 2. stringC언어는 원래 string 타입을 지원하지 않는다. 대신, 문자열은 char 타입의 배열로 표현된다.문자열은 끝에 널 문자(\0)를 포함하여 이것이 문자열의 끝임을 나타낸다.문자열은 쌍따옴표(" ")로 둘러싸여 표현된다. 예: char name[] = "Hello";⭐ 3. Code#inc..
[C/C++ Tip] 25. C언어 2차원 배열
·
C언어 30강
2차원 배열C언어에서 2차원 배열을 다루는 것은 프로그래밍의 기본이면서도, 다양한 응용 분야에서 필수적으로 사용되는 중요한 개념이다. 이 글에서는 2차원 배열의 기본적인 사용법, 몇 가지 팁과 코드 예시를 통해 이해를 돕는다.⭐ 1. 2차원 배열 구조2차원 배열은 데이터를 행렬의 형태로 저장할 때 사용되며, 타입 배열이름[행의 개수][열의 개수];의 형태로 선언한다. 예를 들어, 3행 4열의 정수형 2차원 배열은 다음과 같이 선언한다.int matrix[3][4];⭐ 2. 초기화2차원 배열은 선언과 동시에 초기화할 수 있다. 배열을 초기화할 때는 중괄호 {}를 사용하여 각 행의 요소를 나열한다. int matrix[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9,..
[C/C++ Tip] 24. C언어 파일 입출력
·
C언어 30강
파일 입출력이번 포스팅은 간단한 사용자 정보(이름, 나이, 이메일)를 CSV 형식으로  txt 파일에 저장하고, 저장된 파일을 다시 읽어와서 화면에 출력하는 예제를 다룬다. 실제 C언어에서 파일 입출력을 사용한 적은 크게 없다. 하지만 파일이 쓰고 읽히는 기본 원리를 이해하기 위해 작성하게 되었다.⭐ 1. 파일 쓰기 예제먼저 사용자 정보를 txt 파일에 저장하는 예제부터 시작한다. 파일에 데이터를 쓰기 위해 fprintf 함수를 사용한다. 각 필드는 쉼표로 구분하고, 각 레코드는 새로운 줄에 위치한다.#include int main() { // 파일 포인터 선언 FILE *fp = fopen("test.txt", "w"); if (fp == NULL) { perror("파일 ..
[C/C++ Tip] 23. 지역 변수, 전역 변수, 정적 변수
·
C언어 30강
지역 변수, 전역 변수, 정적 변수C언어에서 변수의 유효 범위와 수명은 프로그램의 동작을 이해하고 제어하는 데 중요한 역할을 한다. 이 글에서는 C언어에서 사용되는 세 가지 주요 변수 유형인 지역 변수(Local Variables), 전역 변수(Global Variables), 정적 변수(Static Variables)에 대해 설명한다.⭐ 1. 지역 변수 (Local Variables)지역 변수는 함수 내부에서 선언되며, 해당 함수 내에서만 접근할 수 있다. 함수의 호출이 시작될 때 메모리에 할당되고, 함수의 실행이 끝나면 메모리에서 해제된다. 이러한 특성 때문에 지역 변수는 함수의 독립성과 재사용성을 높이는 데 기여한다.void function() { int localVariable = 5; //..
[C/C++ Tip] 22. C언어 반복문 : While문
·
C언어 30강
반복문 : While문C언어에서 while문은 주어진 조건이 참(true)인 동안 코드 블록을 반복 실행하는 데 사용된다. while문은 조건이 반복의 시작에 평가되므로, 조건이 처음부터 거짓인 경우 코드 블록은 한 번도 실행되지 않을 수 있다.⭐ 1. While문의 기본 구조While문의 기본 구조는 다음과 같다.while (조건) { // 조건이 참인 동안 실행할 코드}조건: 반복문의 계속 여부를 결정하는 조건이다. 이 조건이 거짓이 되면 반복문이 종료된다.#include int main() { int i = 0; // 반복문 제어를 위한 변수 초기화 while (i 위의 코드는 i가 5보다 작은 동안 i의 값을 출력하고, i를 하나씩 증가시킨다. i가 5에 도달하면 조건이 거짓이 되..
[C/C++ Tip] 21. C언어 반복문: For문
·
C언어 30강
반복문: For문C언어에서 for문은 반복적인 작업을 처리하는 데 필수적인 도구이다. 강력하고 유연한 이 반복문을 통해 코드의 효율성을 극대화하고, 가독성을 향상시킬 수 있다. 이 포스팅에서는 for문의 기본 사용법, 고급 활용법, 그리고 주의사항을 포함한 종합 가이드를 제공한다.⭐ 1. For문의 기본 구조for문의 기본 구조는 다음과 같다.for (초기화; 조건; 증감) { // 반복할 코드 블록}초기화: 반복문이 시작할 때 한 번 실행되며, 반복문의 제어 변수를 초기화한다.조건: 반복문의 계속 여부를 결정하는 조건이다. 이 조건이 거짓이 되면 반복문이 종료된다.증감: 반복문의 각 반복이 끝날 때마다 실행되어 제어 변수를 증가시키거나 감소시킨다.⭐ 2. Code#include int main()..
18진수
'C언어 30강' 카테고리의 글 목록