본문 바로가기
반응형

전체 글87

[CAPL] 현재까지의 시간 출력 함수 및 출력 포맷 (timeNow) 안녕하세요, 오늘은 CAPL에서 현재까지의 시스템 시간(system time)을 얻어오는 방법과 출력 형식(format)에 대해 포스팅 해보도록 하겠습니다. timeNow() 현재 시스템 시간을 얻어오는 대표 함수는 timeNow()입니다. CAPL Function Reference Manual에 명시되어 있듯이, timeNow()는 현재까지의 측정 시간을 10ms 단위로 리턴해주는 함수입니다. timeNow() 이외에도 timeNowFloat(), timeNowInt64(), timeNowNs() 등 다양한 포맷과 단위로 측정 시간을 반환해주는 함수들이 있습니다. 사용 예시 예시 on key 'a' { // current system time write("current time #1 : %ld", ti.. 2021. 12. 30.
[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.
[리눅스 우분투] gcc 컴파일러 설치하기 (Linux ubuntu) 안녕하세요, 오늘은 리눅스 우분투에서 컴파일러를 설치하는 방법에 대해 포스팅 해보도록 하겠습니다. gcc 컴파일러 설치하기 우선 현재 우분투에 gcc 컴파일러의 설치 유무는 아래의 명령어를 이용해 확인할 수 있습니다. gcc --version 설치되어있는 경우 아래와 같이, 그렇지 않은 경우 아래와 같이 나옵니다. gcc 컴파일러는 build-essential 패키지를 이용해 설치할 수 있습니다. build-essential은 gcc, g++, make 등 여러 컴파일러를 포함하는 패키지입니다. 아래의 명령어를 터미널에 차례대로 입력해주세요. sudo apt update sudo apt install build-essential 설치가 완료되면 gcc 컴파일러를 사용할 수 있습니다. 물론 gcc 뿐만 아.. 2021. 11. 22.
[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.
[리눅스 우분투] 가상머신(VirtualBox) 화면 크기 키우기 안녕하세요, 오늘은 오라클 가상 머신인 VirtualBox에서 화면을 키우는 방법에 대해 포스팅 해보도록 하겠습니다. 처음 VirtualBox를 설치 후 OS를 설치하면 아래와 같이 화면이 가득 차지 않는 것을 볼 수 있습니다. 해결 방법 디스플레이 설정을 통해 화면 크기를 키워줄 수 있습니다. 우선 OS를 종료 후 설정 -> 디스플레이로 들어가주세요. 디스플레이에서 그래픽 컨트롤러가 VMSVGA로 설정되어 있을 텐데요, VMSVGA 대신 VBoxVGA (또는 VBoxSVGA)를 선택해주세요. 설정 / 저장 후 다시 OS를 실행하면 아래와 같이 화면이 커진 것을 확인할 수 있습니다. VBoxVGA, VMSVGA, VBoxSVGA 차이점 VBoxVGA, VMSVGA, VBoxSVGA의 차이는 아래와 같다고.. 2021. 11. 19.
[리눅스 우분투] 한/영 키 인식 안되는 문제 해결하기 (Linux ubuntu) 안녕하세요, 오늘은 리눅스 우분투에서 한/영키 인식이 안 되는 현상 해결하는 방법에 대해 포스팅 해보도록 하겠습니다. 한/영 키 인식시키기 (한글 입력하기) 우분투 설치 후 한글팩을 설치해도 한/영키가 인식되지 않아 한글 입력에 어려움을 겪는 일들이 종종 발생하는데요, 해결 방법은 생각보다 간단합니다. 우선 설정 -> 지역 및 언어를 선택해주시면 아래와 같이 입력 소스에 한국어(Hangul)뿐만 아니라 한국어(101/104키 호환)가 함께 있는 것을 볼 수 있습니다. 한영키가 인식되지 않는 이유는 바로 한국어(101/104키 호환)가 함께 설정되어 있어 한국어(Hangul)에서 설정된 한/영키가 제대로 인식되지 않아서입니다. 때문에 한국어(101/104키 호환)를 삭제해주어야 합니다. 휴지통 모양의 아이.. 2021. 11. 18.
반응형