구조체 12

#047_닷넷(.NET)_.Net Framework 기본 - 구조체와 클래스에서 복사 (Shallow ,Deep Copy)

안녕하세요 삽잡이입니다. 이번 시간에는 struct, class의 경우를 비교해보며각 참조를 가졌을 때, 값을 가졌을 때 어떻게 복사가 되어가는지 알아보겠습니다.하... 힘든 시간이 될 수 있지만 힘차게 달려가봅시다! 필자는 Point와 Rect라는 형식을 가지고 비교를 진행해보도록 하겠습니다. 시작 전에 복사의 진리(?)를 다시 한번 곱씹어보고 가시겠습니다...값 형식과 참조 형식이 뭡니까?값 형식은 왜 값 형식이라고 부를까요?변수 자체가 값이고 모든 복사가 값으로 되기 때문입니다.참조형식은 그렇다면?객체 자체가 참조입니다. 객체는 따로 있고 참조자를 통해 가리킬 뿐이지요.참조형식일 경우 복사할 때 참조가 복사되니 참조 복사라고 부를 수 있습니다. 본격적으로 시작해볼까요? Case 1. Class 안에..

#028_닷넷(.NET)_.Net Framework 기본 - 클래스와 구조체의 용도

안녕하세요 삽잡이입니다. 이번 시간에는 클래스와 구조체에 대해서 알아보겠습니다. 클래스는 자동 속성이 되지만 구조체는 자동 속성을 만들 수 없습니다... 뭐... 원래 이렇게 약속을 해뒀기 때문입니다... struct의 의미는 '값 형식'이라는 의미를 가지고 있습니다.class는 '참조 형식'이라는 의미를 가지고 있지요... 값 이라 하면 '어떤 데이터를 표현하기 위해 만들어 놓은 형식'을 말하는 것입니다.어떤 데이터를 표현하기 위해서... 즉, 값의 표현을 목적으로 하는 것이 구조체라는 것입니다.데이터 중심적이지요... 따라서 struct는 데이터 표현을 위해 사용합니다. 그런데 class는 참조 형식이지요.... 서비스 즉, 클라이언트가 서버에게 어떤 기능을 요청했을 때서비스를 수행, 제공하기 위한 ..

#020_닷넷(.NET)_.Net Framework 기본 - 실제 참조 타입 과 값 타입

안녕하세요 삽잡이입니다. 이번 시간에는 실제로 값 타입과, 참조 타입이 뭔지 알아가도록 해보겠습니다...지난 시간에 복습하느라 못했습니다... 사실 실제 값 타입, 참조 타입은 'Class'와 'Struct' 이 두가지만 알면 됩니다...클래스와 구조체를 통해 값 타입과 참조 타입을 명확하게 구분할 수 있기 때문입니다.왜냐? 클래스는 참조의 대표, 구조체는 값의 대표이니깐 말입니다. 우선 둘의 특징에 대해서 알아보고 가도록 하겠습니다. 우선 Class는 부모가 Value 타입이 아닌 이상모든 부모로부터 모든 타입을 상속받을 수 있습니다.또한 파생시킬 수 있습니다. 즉, 자식 클래스를 만들 수 있다 이겁니다. 하지만, Struct는 상속이 자체가 불가능합니다.또한 상속을 받을 수도, 상속을 시켜줄 수도 없..

곱씹어보자 C!_#031_삽잡이의 파일 입출력을 사용한 저장 및 복원 예제

안녕하세요 삽잡이입니다.. 이번 글은 파일 입출력에 관한 실습 예제 입니다. 역시 코딩은 눈으로만 보는 것이 아니라 직접해봐야한다는... 인터넷의 많은 도움과 짜집기의 힘을 얻어 만든 이 코드는 문자열 입력, 출력, 검색, 삭제, 저장, 복원의 기능을 가지고 있습니다... 다시한번 인터넷님에게 감사드리며... 많은 정보들을 남겨주신 모든 분들에게 감사드리며... 푸하하... 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798..

#002_시(c)시(c)해서 C++?!... C와 C++의 차이 실제 예시

자... 실제로 C와 C++의 똑같은 목적을 가진 코드를 볼 것인데요, 똑같은 방향을 바라보는 C와 C++이 어떻게 달리 구현되는지 확인해보도록 하겠습니다. 우선 C의 입장에서 헤더파일을 만들어보도록 하겠습니다. 1234567891011121314#pragma once #define MAX_NAME_LEN 200typedef struct _Member{ int num; char name[MAX_NAME_LEN+1]; int iq;}Member; Member *NewMember(int num, const char* name);void DeleteMember(Member* member);void Member_View(Member* member);void Member_View(Member* member);cs..

곱씹어보자 C!_#025_삽잡이의 두서없이 막말하는 함수 포인터

달립니다 달립시다~~ 삽잡이는 달립니다~~ 이번 시간에는 함수포인터로 C부려봅시다~~ 함수 포인터... 많이 사용됩니다. 크게 사용하는 분야를 2개로 나눌 수 있습니다. 첫번째, 프로그램 기능의 유연성을 키우고자 할때, 두번재, Callback 함수를 만들어 낼 때 입니다. 첫번째에 대한 설명을 드리자면, 함수포인터 하나만 가지고 있으면 함수의 주소 즉, 이름을 대입하여 많은 곳에 사용할 수 있게 됩니다. 즉, 어떨 때는 A함수, 어떨 때는 B함수 코드 한줄 안고치고도 기능이 바뀔 수 있죠... 이게 바로 유연성을 키운다고 말하는 것입니다. 단, 같은 시그니처를 가지고 있을 때 사용할 수 있겠죠... 이렇게 사용할 수 있습니다... 123456789101112131415161718192021222324#..

곱씹어보자 C!_#023_삽잡이의 두서없이 막말하는 지금까지 응용 예제

안녕하세요 삽잡이 입니다!오늘은 지금까지 배워온 모든 것들을 응요해서예제를 만들어봤습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132#pragma warning(disable:4996)#include #include #include #in..

곱씹어보자 C!_#022_삽잡이의 두서없이 막말하는 구조체 예시_둘

안녕하세요 삽잡이입니다.구조체 예시 두번째 시간입니다... 지난시간에 이어 예시를 살펴보는데 어때요 재미있죠...아하하하하하하하하 정줄 놓지 않았습니다.... 죄송합니다... C부려보도록 하겠습니다... 푸하하 이번시간도 마찬가지로 지난 시간부터 주구장창 사용하는요놈... 를 꾸준히 사용하며 설명을 진행해보도록 하겠습니다.안녕~~~ 123456typedef struct _Point { int x; int y;}Point; cs 구조체에서는 오직 딱 하나 '대입' 만이 가능합니다.다른거 안되요... 같은 타입인 경우 대입 즉, 복사가 가능합니다. 이를 메모리 덤프라고도 하죠...이렇게 가능합니다... 1234567891011121314151617void PrintPoint(Point ps[]){ print..

곱씹어보자 C!_#021_삽잡이의 두서없이 막말하는 구조체 예시_하나

갑자기 구조체를 사용하는 이유에 대해서 중얼거리다가 갑자기 예제 코드냐구요? 혹여나 말씀드리자면... 제목과 같이 우선... 두서없이 막말하고요...기초를 다루는 것이 아니라... 아는 것인데 그래도 개인적으로 곱씹어 볼만하거나, 내가 모르는 것들을정리하는 정도로 작성을 하기로 처음에 써놨습니다... 혹여나... 정말 제 자료를 보시는 분들이 없다는 것을 알지만...혹시... 아주 혹씨 궁금해하실까봐요... ㅎㅎ... 아무튼... 마음아프네요...예시들이나 살펴보도록 하져... 1234567891011121314151617181920typedef struct _Point{ int x; int y;}Point; void main(){ Point p1 = { 10, 20 }; printf("p1 : %d\n..

곱씹어보자 C!_#020_삽잡이의 두서없이 막말하는 구조체를 사용해볼까

안녕하세요 삽잡이입니다 지난시간의 구조체를 사용하는 이유에 이어서 달려가봅시다~!아다다다다다~!!! ... c언어에서는 데이터 형식을 두가지로 나눌 수 있습니다.char, int, double 과 같은 기본형식과우리가 구조체를 통해 만드는 사용자 정의 형식 이 두가지말입니다. 지난 시간을 조금만 곱씹어보자면... 우리가 FIFA Online을 만든다고 합시다... 선수 터져서 접은.... 아하하... 별로 게임을 그리 안좋아해요...마음이 아픈... 아무튼... 축구 게임을 만들고 싶다하면 뭐가 필요할까요?선수, 팀, 경기장, 슛, 패스, 크로스 등등등...만들고자 필요한 모든 것들을 문제 도메인에다가 만드는 것입니다. 글씨가 작군요... 그만큼 집중해서 뚫어져라 보시죠...중요한 말은 아닌데... (퍽..