본문 바로가기

C 자료구조와 알고리즘4

공용체 공용체(union)와 구조체(struct)의 차이점공용체(union) 와  구조체(struct) 는 여러 값을 담을 수 있는 데이터 타입이다. 하지만 메모리를 사용하는 방식에 큰 차이가 있다.구조체(struct) 는 각 멤버마다 고유한 메모리 공간을 가지며, 서로 독립적으로 값을 유지한다. 공용체(union) 는 모든 멤버가 같은 메모리 공간을 공유한다. 그래서 한 멤버의 값을 바꾸면 다른 멤버들의 값도 바뀔 수 있다. 공용체는 메모리를 절약하고 싶을 때 유용하다.#include #include typedef unsigned char U08;typedef union { struct { U08 dummy1 : 1; U08 LSYS : 1; U08 DCM .. 2024. 10. 11.
전처리기 토큰 결합 연산자 토큰 결함 연산자란?토큰 결합 연산자 ##는 전처리기에서 두 개의 토큰을 하나로 결합하는데 사용된다.이 연산자를 매크로 정의에서 주로 사용되며, 매크로의 인자들을 하나의 새로운 토큰으로 만들어 준다.이를 통해 동적을 특정 상황에 맞는 변수 또는 함수의 이름을 만들 수 있다. 예제#include #define CONCAT(a,b) a##bint main(){ int xy = 100; printf("xy값 : %d\n", CONCAT(x,y)); return 0;}위 코드에서 CONCAT(a,b) 매크로는 a와 b를 결합하여 새로운 토큰 xy를 생성한다.따라서 CONCAT(x,y)는 xy로 결합되며, printf() 문에서 xy변수의 값을 출력하게 된다. 2024. 10. 10.
주소의 형 변환 C언어에서는 상황에 따라서 필요에 따라서 자료형을 임의로 변환할 수 있는 형변환이란 작업을 할 수 있다.예를 들어 정수형을 저장하는 num의 값의 10의 값을 실수로 바꾸고 싶다면 (float)num; 으로 10을 실수로 형변환하여 10.000...으로 변환 할 수 있다. 하지만 이것은 변수의 값을 변경하는 것이지 num이 저장하는 데이터 타입을 변경하는 것이 아니다. c언어에서는 한번 선언된 변수의 타입은 바꿀 수 없기 때문에 새로운 변수를 선언해야 한다.새로운 변수를 선언하는 방식int num = 10;float floatNum = (float)num; // 올바른 변환해당 방식은 이전 설명했던 것 처럼 num = (float)num;에서 새로운 변수를 선언해서 값을 저장하는 것으로 크게 다른 점이 .. 2024. 10. 10.
자료구조와 알고리즘 자료구조란?사람들이 사물을 정리하여 저장하는 것과 마찬가지로 프로그램에서도 자료들을 정리하여 보관하는 여러 가지 구조들이 있다. 이를 자료구조라 부른다.자료들을 쌓아서 정리하는 구조를 컴퓨터에서는 "스택" 이라고 부른다.알고리즘이란?컴퓨터의 프로그램은 흔히 "자료구조 + 알고리즘" 이라고 한다.대부분의 프로그램에서 자료를 처리하고 있고 이들 자료는 자료구조를 사용하여 저장된다. 또한 주어진 문제를 처리하는 절차가 필요한데, 이를 알고리즘이라고 불린다. 2024. 7. 15.