분류 전체보기(139)
-
C언어 - 공용체의 원리
구조체는 데이터를 묶어놓은것, 그데이터로 가지고 할수있는 일들을 기능까지 집어넣은 것이 객체지향에서 말하는 객체(Object), class이다. int main(){ /* 서로 다른 데이터 타입들이 같은 메모리 공간을 사용한다. (구조체와의 차이점) union my_union{ int i; double d; char c; }; // 메모리를 같이 사용한다. (padding이 없다.) union my_union uni; printf("%zd\n", sizeof(union my_union)); // 8 printf("%lld\n", (long long)&uni); // 19920800 printf("%lld %lld %lld\n", (long long)&uni.i, (long long)&uni.d, (lon..
2020.11.15 -
C언어 - 구조체를 함수로 전달하는 방법
struct fortune{ char bank_name[FUNDLEN]; double bank_saving; charfund_name[FUNDLEN]; double fund_invest; }; //double sum(double, double); double sum(struct fortune my_fortune); int main(){ struct fortune my_fortune = { "Welles-Fargo", 4032.27, "JPMorgan Chase", 8543.94 }; printf("Total : $%.2f.\n", //sum(&my_fortune.bank_saving, &my_fortune.fund_invest)); sum(my_fortune); // 위를 이렇게 쓸수있으면 얼마나 편할까..
2020.11.15 -
C언어 - 구조체를 다른 구조체의 멤버로 사용하기
#definfe LEN 20 struct names { char given[LEN]; char family[LEN]; }; struct reservation { struct names guest; struct names host; char food[LEN]; char place[LEN]; //time int year; int month; int day; int hour; int minutes; }; int main(void){ struct reservation res ={ .guest = {"Nick", "Carraway"}, .host = {"Jay", "Gatsby"}, .place = {"the Gatsby mansion"}, .food = {"Escargo"}, .year =1925, .month..
2020.11.15 -
C언어 - 구조체의 기본적인 사용법
서로 다른 자료형인 배열들을 내가 원하는 형태로 가져와서 쓸수없을까? = 구조체 struct가 마치 자료형인것처럼 변수를 선언한다. 이름 배열, 키 배열, 몸무게 배열, 나이 배열 .(dot) 도 연산자이다 (구조체 멤버에 접근할수 있는 구조체 연산자이다.) 역시 변수를 선언 할때 메모리를 가진다. (위의 모양과 같이) 구조체의 형태대로 틀에짜여 나오게 된다. (보통 붕어빵에 비유해서 말함, 서양에선 쿠키틀에 비교) struct person //Person is a tag of structure { char name[MAX]; // member int age;// member float height;// member }; // 구조체가 선언 될때 메모리를 가짐 // 위는 틀을 짠것뿐 아직 메모리를 받은게..
2020.11.14 -
C언어 - 파일 입출력
우리가 C언어로 작성하고 실행시키면 운영체제 사이에 스트림이 3개 생긴다 데이터가 시냇물처럼 흘러서 왔다 갔다 할수있는 통로 1. stdout 표준 출력 - 화면출력 장치, 파일 2. stderr 표준 에러 - 화면출력장치, 파일 3. stdin 표준 입력 - 키보드 입력 버퍼 : 데이터 하나씩 오가는게 아니라 버스처럼 많이 채워 오가는것. 게임 저장파일로 캐릭터의 레벨이나 상황등등을 저장해서 첨부터 하는게 아니라 로드해서 저장된 내용부터 게임하는것 데이터를 저장하거나 읽어올때는 2가지 모드를 사용할수있다. 1. 텍스트 파일io스트림 2. 바이너리파일 io스트림 둘다 같이 사용할수도 있다. 텍스트 파일 : 직접적으로 파일을 열어서 볼수 있는것들 (메모장, 노트패드) 문자들을 화면에 그려주는게 운영체제. ..
2020.11.13 -
C언어 - 멀티쓰레딩 (Multi - Threading)
Main Thread - 주된 맥락 Thread 0~n : 이야기 도중 옆으로 새서 부가 설명하는것. 이야기가 병렬로 진행되는것. 여행중 두그룹으로 나뉘고 번갈아가면서 보여주는 형식(동시에 진행) 같은 함수의 여러개의 쓰레드가 동시에 진행. 쓰레드가 3개 돌면 함수의 사본이 3개가 돌아야한다. 하나의 전역변수를 여러개의 쓰레드가 동시에 쓰려고 하면 경쟁이 발생한다. 메모리에 저장되있는 값을 cpu에 전송하면 register에 있는 임시공간에 놓고 작업하고 결과값을 메모리에 반환 첫번째 쓰레드가 메모리로부터 cpu로 들고와서 작업하는 동안 다른 스레드가 재빨리 메모리에 있는 값을 바꾼다면 문제가 생긴다. 출처 : 홍정모의 따라배우는 C언어
2020.11.13