일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- server
- 종만북
- String
- greedy
- Algospot
- BOJ
- Math
- sorting
- BFS
- 따라하면서 배우는 C언어
- graph
- C
- 인프런
- Algorithm
- 백준
- 정수론
- 생활코딩
- 따배씨
- Cleancode
- JavaScript
- programmers
- BASIC
- 따라하며 배우는 C언어
- DP
- Python
- dfs
- udemy
- web
- php
- C언어
- Today
- Total
목록따라하며 배우는 C언어 (67)
몽상실현개발주의
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.17 가변 인수 Variable Arguments #include #include #include // Variable Arguments /* Variable Arguments - int printf(char const * const _Format, ...); 1. Provide a function prototype using an ellipsis void vaf1(int n, ...); // OK int vaf2(const char * s, int k, ...); // OK char vaf3(char c1, ..., char c2); // Not OK, ellipsis should be the last. double vaf4(...);..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.16 memcpy() 와 memmove() #include #include #include // memcpy(), memmove() #define LEN 6 void prt(int *arr, int n) { for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { /* - overlapping region - pointer-to-void (datatype is unknown) */ int arr1[LEN] = { 1, 3, 5, 7, 9, 11}; int* arr2 = (int*)malloc(LEN * sizeof(int)); if (arr2 =..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.15 assert 라이브러리 디버깅 할 때 유용하게 사용 가능 #include int divide(int a, int b); int main() { int a, b; int f = scanf("%d%d", &a, &b); printf("a / b = %d\n", divide(a, b) ); return 0; } int divide(int a, int b) { assert(b != 0); // b == 0 일때, assert 동작 return a / b; } assert 는 Release Mode 에서는 compile 시 포함되지 않음 Debug Mode Runtime 에서 동작 static assert 는 compile time 에서 동..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.14 표준 유틸리티 Utilities 라이브러리 #include #include /* rand(), srand(), malloc(), free(), ... */ void goodbye(void) { printf("GoodBye\n"); } void thankyou(void) { printf("Thankyou\n"); } int main() { printf("Purchased?\n"); if (getchar() == 'y') atexit(thankyou); // 프로그램이 종료 될 때, 런타임에서 실행 시킬 함수를 등록 while (getchar() != '\n') {}; printf("Goobye message?\n"); if (getc..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.13 표준 수학 라이브러리 #include #include int main() { printf("%f\n", cos(3.141592)); double c = 5.0, b = 4.0, a; a = sqrt(c * c - b * b); printf("a = %f\n", a); float cf = 5.0f, bf = 4.0f, af; af = sqrtf(cf * cf - bf * bf); printf("af = %f\n", af); return 0; } #include #include // type generic macros #define SQRT(X) _Generic((X),\ long double: sqrtl, \ default: sqrt..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.12 라이브러리 Library : 필요한 책들이 잔뜩 모여있는 도서관 참고 Compile : 책을 출판하기 위해 ''편집하다'' 라는 의미 Library 는 Main 함수가 없음 Library 의 종류 Static Library : 프로그램에 Library 가 포함되어 있음 Dynamic Library : 프로그램의 실행 도중 필요 할때, 동적으로 Library 를 가져다 사용함 확장자별 종류 .a : 리눅스/정적 라이브러리 .so : 리눅스/동적라이브러리 .lib : 윈도우/정적라이브러리 .dll : 윈도우/동적라이브러리 Library 와 Header 의 차이 라이브러리 : 기계어로 번역된 것 헤더파일은 : 컴파일 하기 전, 프로그래머..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.11 inline 함수 작은 함수가 반복하여 사용 될 때, 실행 속도를 높일 수 있는 방법 #include /* Function call has overhead - set up the call, pass arguments, jump to the function code, end return. inline function spectifier (함수 특성 지정자) - suggets inline replacements. (제안을 함) - function call overhead 가 없어짐 Inline functions should be short. A function with internal linkage can be made inline. ..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.10 _Generic 표현식 #include /* Generic selection expression - Generic programing : code is not specific to a particular type _Generic : C11 keyword */ #define MYPYPE(X) _Generic((X), \ int : "int", \ float: "float", \ double : "double", \ default: "other" \ ) int main() { int d = 5; printf("%s\n", MYPYPE(d)); // int printf("%s\n", MYPYPE(2.0 * d)); // double pr..