일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 인프런
- graph
- sorting
- Cleancode
- programmers
- 따배씨
- dfs
- Algorithm
- DP
- Algospot
- 정수론
- String
- JavaScript
- BASIC
- 종만북
- greedy
- BFS
- 따라하며 배우는 C언어
- php
- 백준
- Python
- 생활코딩
- udemy
- web
- C언어
- C
- server
- BOJ
- Math
- 따라하면서 배우는 C언어
- Today
- Total
목록따라하면서 배우는 C언어 (121)
몽상실현개발주의
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.4 저장 공간의 다섯 가지 분류 Five Storage Classes 저장 공간의 분류는 크게 두가지로도 나눌 수 있다 Static이 아닌것 Automatic 모든 지역변수 지속기간과 영역을 프로그래머가 지정 해 주는 것이 아니 꼭 필요한 기간에만 지속이 되고 필요한 부분에서만 볼 수 있도록 영역을 지정 해 줌 Register CPU 안의 임시 작업 공간인 레지스터에 올라갈 가능성이 높아짐 최신 Compiler 는 Register 선언을 하지 않아도 알아서 Register 를 사용하여 효율을 높여줌 Static 프로그램이 시작될 때 부터 끝날 때 까지 메모리 공간에 유지 In..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.3 변수의 영역 Scope 과 연결 상태 Linkage, 객체의 지속 기간 Duration #include /* Variable scopes (visibility) - block, function, function prototype, file. */ // file scope int g_i = 123; // global variable int g_j; // global variable void func1(){ g_i++; // uses g_i } void func2(){ g_i += 2; // uses g_i // local = 456; // Error } int main(){..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.2 객체 Object 와 식별자 Identifier, L-value 와 R-value #include int main(){ /* Object - "An Object is simply a block of memory that can sotre a value." - Object has more developed meaning in C++ and Object Oriented Programming Identifiers - Names of variables, function, macros, amd other entities */ int var_name = 3; // creates an..
따배씨 - 따라하며 배우는 C언어 12강 Storage Classes, Linkage and Memory Management 12.1 메모리 레이아웃 훑어보기 프로그램 코드는 변형이 되면 안되기 때문에 TEXT Segment 에 읽기 전용으로 저장됨 프로그램이 실행되면서 코드도 프로그램이 종료 될 때 까지 메모리 계속 존재 전역변수로 메모리를 선언하는것이 가장 편하지만, 프로그램이 끝날 때 까지 메모리가 할당 되어 있는것은 비 효율적임 블럭 안에서 선언되는 메모리는 stack 에 할당, 그 블럭이 실행되는 동안에만 메모리에 할당되고 블럭의 실행이 종료되면 운영체제에게 메모리 권한을 넘겨줌 효율적인 메모리 사용 가능 main() 함수에 선언된 변수의 메모리는, main 함수의 특성상 프로그램이 종료될때 까..
따배씨 - 따라하며 배우는 C언어 11강 문자열 함수들 11.4 문자열을 입력받는 다양한 방법들 입력받은 메모리 공간을 확보한 다음에 입력을 받아야 함 #include #define STRLEN 81 int main(){ char words[STRLEN] = ""; gets(words); // Hello words printf("START\n"); // START printf("%s", words); puts(words); // Hello wordsHello words puts("END."); // END. return 0; } char words[STRLEN] = ""; gets(words); gets 함수는 String 의 첫 주소를 받아서 출력 포인터 하나만 받아서는 사용할 메모리의 크기를 알 수 ..
따배씨 - 따라하며 배우는 C언어 11강 문자열 함수들 11.3 문자열의 배열 #include int main(){ const char* mythings[5] = { "Dancing in the rain", "Couting apples", "Watching movies with friends", "Writing sad letters", "Studying the C language" }; char yourthings[5][40] = { "Studying the C++ language", "Eating", "Watching Netflix", "Walking around till dark", "Deleting spam emails" }; const char* temp1 = "Dancing in the rain..
따배씨 - 따라하며 배우는 C언어 11강 문자열 함수들 11.2 메모리 레이아웃 Memory Layout 과 문자열 char arr[] = "Hello, World"; char* str = "Hello, World"; //str[0] = 'M'; // Error 메모리 레이아웃에서 문제 발생 환경변수 : 프로그램이 실행되는 환경에 대한 변수 Stack : 지역변수들이 저장됨, 메모리의 크기를 Compiler 가 미리 예측할 수 있는 경우에 사용, Compiler 가 준비를 할 수 있기 때문에 처리 속도가 빠름 Heap : 메모리 공간을 알 수 없을 때 사용 Segment : 읽기 전용 메모리, 메모리 공간의 변화 불가 #include int main(){ const char* pt2 = "I am a S..
따배씨 - 따라하며 배우는 C언어 11강 문자열 함수들 11.1 문자열 Strings 을 정의하는 방법들 #include #define MESSAGE "A symbolic string contant" #define MAXLENGTH 81 int main(){ char words[MAXLENGTH] = "A string in an array"; const char* pt1 = "A pointer to a string."; puts("Puts() adds a newline at the end:"); // puts() add \n at the end puts(MESSAGE); // A symbolic string contant puts(words); // A string in an array puts(pt1)..