본문 바로가기
반응형

▶ 프로그래밍 [Programming]/▷ C 언어 [C Language]7

[C 언어] 사전 정의 매크로 (__DATE__, __TIME__, __FILE__, __LINE__, STDC__, __FUNCTION__) 안녕하세요, 오늘은 C에서 사전 정의된 매크로에 대해 포스팅 해보도록 하겠습니다. 사전 정의 매크로 ANSI C에서는 아래와 같이 사전에 정의된 매크로가 있고, 전처리기에서 처리됩니다. __DATE__ 현재 날짜를 나타내는 문자열 __TIME__ 현재 시간을 나타내는 문자열 __FILE__ 현재 파일 이름을 나타내는 문자열 __LINE__ 현재 위치의 줄 번호를 나타내는 정수 __STDC__ ANSI 표준 C를 따르는 경우 0이 아닌 정수 참고로 함수명을 나타내는 매크로인 __FUNCTION__ (또는 __func__) 은 컴파일러가 처리하며, 컴파일러마다 사용법이 다를 수 있습니다. 사용예시 예시 #include int main(void) { printf("%s\n", __DATE__); printf(.. 2023. 4. 7.
[C 언어] 가변 인자를 이용한 디버그 함수 만들기 (va_list, va_start, va_end, vsprintf) 안녕하세요, 오늘은 가변 인자를 이용한 디버그 함수를 만드는 방법과 사용 예시에 대해 포스팅 해보도록 하겠습니다. 가변 인자 가변 인자를 이용하면 사용자가 입력 파라미터에 구애없이 사용자 정의 함수를 만들 수 있는 장점이 있습니다. 가변 인자를 이용하기 위해선 va_list, va_arg, va_start, va_end, ... 등의 타입이 필요한데요, 이는 C에서는 stdarg.h, C++에서는 cstdarg에 정의되어있습니다. C 언어를 이용해 실제 실무에서 많이 사용되는 가변 인자를 이용한 사용자 정의 디버그 함수 예시를 보여드리겠습니다. 사용자 정의 출력 함수 (디버그 함수) 예시 예시 #1 #include #include typedef enum { DBG_NONE, DBG_ERROR, DBG_W.. 2021. 11. 26.
[C 언어] 가변 인자를 이용한 사용자 정의 함수 만들기 (va_list, va_arg, va_start, va_end) 안녕하세요, 오늘은 가변 인자를 이용한 사용자 정의 함수를 만드는 방법과 사용 예시에 대해 포스팅 해보도록 하겠습니다. 가변 인자 가변 인자를 이용하면 사용자가 입력 파라미터에 구애없이 사용자 정의 함수를 만들 수 있는 장점이 있습니다. 가변 인자를 이용하기 위해선 va_list, va_arg, va_start, va_end, ... 등의 타입이 필요한데요, 이는 C에서는 stdarg.h, C++에서는 cstdarg에 정의되어있습니다. C 언어를 이용해 가변 인자를 이용한 사용자 정의 함수 예시를 보여드리겠습니다. 사용자 정의 함수 예시 총 입력 받은 파라미터들의 개수를 알기 위해 첫 번째 인자에는 파라미터 총 개수를 입력하도록 했습니다. 예시 #include #include int user_sum(in.. 2021. 11. 25.
[C 언어] 버블소트(bubble sort)를 이용한 정렬 사용 예시 (example code) 안녕하세요, 오늘은 버블 소트 예시에 대해 포스팅 해보도록 하겠습니다. 버블 정렬은 시간복잡도가 O(n^2)로 그다지 효율적인 알고리즘은 아닙니다. 그럼에도 많이 사용되는 이유는 이해하기 쉬운 알고리즘과 낮은 구현 난이도 때문이 아닐까 합니다. C 언어 기준으로 예제 코드 및 결과를 작성해보도록 하겠습니다. 버블 소트를 이용한 배열 정렬하기 위의 코드는 오름차순 기준으로 작성한 코드입니다. #include // bubble sort prototype void bubble_sort(int *, int); int main() { int arr[] = {5, 2, 3, 1, 4}; int arr_cnt = 5; printf("Before sorting the array\n"); for (int i = 0; i 2021. 11. 24.
[C 언어] 함수 포인터를 이용한 콜백함수(callback function) 사용 예시 (example code) 안녕하세요, 오늘은 알아두면 유용한 callback 함수 사용 예시에 대해 포스팅 해보도록 하겠습니다. 콜백 함수란 무엇인가 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다. (출처: 위키백과) 콜백 함수는 주로 특정 이벤트가 발생했을 때, 사용자가 원하는 기능을 수행하도록 하기 위해 사용합니다. 하지만 특정 이벤트가 아니더라도 함수 내에서 사용자가 원하는 기능을 수행하기 위해 사용하기도 합니다. 콜백 함수 사용 예시 아래는 C 언어로 작성한 콜백 함수 등록 및 사용 예시 코드입니다. #inclu.. 2021. 11. 23.
[C 언어] 퀵소트(qsort)를 이용한 배열, 구조체 정렬 사용 예시 (example code) 안녕하세요, 오늘은 표준 라이브러리인 퀵소트 함수 qsort 사용 예시에 대해 포스팅 해보도록 하겠습니다. 퀵소트는 평균적으로 O(nlogn)의 시간복잡도를 갖는 매우 효율적인 알고리즘입니다. 직접 구현하기는 까다롭지만 라이브러리를 제공하기 때문에 사용하기 무척 편리합니다. qsort를 사용하기 위해서는 C 에서는 stdlib.h, C++에서는 cstdlib 헤더 파일을 포함(include) 해야 합니다. C 언어 기준으로 예제 코드 및 결과를 작성해보도록 하겠습니다. 배열 정렬하기 위의 코드는 오름차순 기준으로 작성한 코드입니다. 내림차순으로 하려면 cmpfunc 함수에서 return을 (*(int *)b - *(int *)a); 로 하면 됩니다. #include #include // to use qs.. 2021. 11. 21.
[C 언어] 윈도우에서 gcc 컴파일러 설치, 환경 변수에 경로 추가하기 (Windows) 안녕하세요, 오늘은 윈도우에서 gcc 컴파일러를 설치 및 환경변수에 경로 추가하는 방법에 대해 포스팅 해보도록 하겠습니다. gcc 컴파일러 설치하기 윈도우용 GCC 컴파일러 설치 파일은 https://www.mingw-w64.org/ 에서 다운받을 수 있습니다. 해당 사이트에 접속 후 다운로드(Downloads)로 들어가 주세요. https://www.mingw-w64.org/downloads/ 로 바로 접속하셔도 무방합니다. 다운로드로 들어가면 각 운영체제에 맞는 설치 파일을 다운받을 수 있습니다. 아래로 내려가다 보면 윈도우용 gcc 컴파일러 설치 파일을 발견할 수 있습니다. 클릭 후 다운받아주세요. 다운받은 설치 파일을 이용해 gcc 컴파일러를 설치해주세요. Architecture는 64비트 윈도우.. 2021. 11. 20.
반응형