C언어 가변 인자(가변 파라미터)를 사용해보자 1. 가변인자란 무엇일까? printf 함수를 써보셨나요? 우리는 자연스럽게 printf("%d * %d = %d", 3, 5, 3*5)라고 쓰고 있습니다. 가만보면 printf라는 함수는 인자를 1개만 넣어도 되고, 2개만 넣어도 되고, 3개, 4개 그 이상을 넣어도 문제없이 돌아갑니다. c언어에서 이런것이 가능한가요? 오늘은 이런 마법을 부릴 수 있게 하는 가변 인자라는 것에 대해 포스팅을 하겠습니다. 2. printf의 원형 printf 함수의 원형을 찾아보신 분이 계실지 모르겠습니다. printf의 원형을 찾아보면 다음과 같습니다. int printf(const char* format, ...) 참조: 컴파일러에 따라 printf의 실제 구현과는 원형..
c/c++ sprintf, snprintf 함수 sprintf라는 출력함수가 있습니다. 이 함수는 printf와 비슷하게 사용되지만, 다른점은 printf는 모니터 화면에 입력한 문자열이 출력된다면, sprintf는 버퍼로 사용될 변수로 출력이 됩니다. 즉, char * 로 선언된 변수안에 입력된 내용이 문자열로써 담기게 되는 것이죠. snprintf는 2번째 파라미터로 size가 추가된 함수로, 버퍼 오버플로우를 막기위해 문자열의 길이를 지정하는 좀 더 안전한 함수가 되겠습니다.우선 함수의 프로토타입을 먼저 보도록 하겠습니다. int sprintf (char *buffer, const char *format, ...) int snprintf (char *buffer, int buf_size, const..
저 역시 Mir를 처음 시작하는 겁니다. 배우면서 올리는 포스팅이기 때문에 본문에 오류가 있을 수 있습니다.오류가 있으면 지적해주시고 같이 고쳐나갈 수 있었으면 좋겠습니다. 참고로 Mir는 우분투 13.10 버전에서 설치하실 수 있습니다. - Mir 소스코드 다운로드 및 빌드하기! 미르를 사용해보기까지 길이 굉장히 험난하군요. 설치해야할 것도 많고 다운로드 받아야할 것도 많습니다. 우선 미르의 소스코드를 받아오도록 합시다. 원문은 http://unity.ubuntu.com/mir/building_source_for_pc.html 이 페이지 입니다. 1. 소스코드 다운로드 $ sudo apt-get install bzr $ bzr branch lp:mir 우선 bzr (bazaar; 캐노니컬이 지원하는 분..
우분투를 설치하면 기본적으로 저장소(repository)의 서버는 kr.archive.ubuntu.com 으로 셋팅되어 있습니다. 그런데 이 서버가 매우 느립니다. 속도가 약 한 100~200kb정도 나오는거 같아요. 이 서버를 다른 서버로 바꿔주면 다운로드 속도가 매우 빨라집니다! 우선 [우분투 소프트웨어 센터]를 엽니다.(캡쳐화면은 13.10에서 작업한 화면이지만 12.04도 똑같습니다) 여기서 [Edit] -> [Software Sources...] 로 들어갑니다. 그러면 위와 같은 화면이 뜨는데요, 다운로드 서버를 바꾸신적이 없었다면, Download from에 kr.archive.ubuntu.com 이 주소가 입력되어 있을겁니다. 그 부분을 클릭해서 [Other] 를 눌러줍니다. 그러면 이제 뜨..
vim은 우분투에서 사용되는 vi 에디터에 설정을 더하여 보다 편리하게 사용할 수 있도록 해주는 에디터입니다. 우선 vim을 설치해주셔야 합니다. $ sudo apt-get install vim 예전에 제가 겪었던 오류사항중에 우분투를 처음 설치하고 바로 vim을 설치하려는 경우, 우분투 저장소 업데이트가 되지 않아서 vim 패키지를 찾지 못하는 오류가 있었던 적이 있습니다. 만약 vim 패키지를 찾을 수 없다. 라는 오류가 뜨신다면 $ sudo apt-get update 위의 명령어를 먼저 수행해 주시길 바랍니다. 설치가 완료되었으면 vim 설정을 해줘야합니다. vim에는 정말 다양한 설정들이 많지만, 우선 제가 사용하는 것들만 소개해 드리겠습니다. $ vi ~/.vimrc 위의 명령어를 입력하여 vi..
안녕하세요. 오늘은 시너지 사용법에 대해서 설명 드리도록 하겠습니다. 시너지(synergy)란, 다른 플랫폼간에 마우스와 키보드를 공유해서 마치 듀얼모니터처럼 사용할 수 있게 해주는 프로그램인데요. 아주 고맙게도 오픈소스로 공개되어 있어 무료로 이용가능합니다. 프리소프트웨어임에도 불구하고 완성도가 높아서 우분투 - 윈도우간 마우스/키보드 공유가 필요하신 분들이 많이 사용하고 있습니다. 우선 시너지를 다운부터 받아야 하겠지요? :)http://synergy-foss.org/ 위 홈페이지에 들어가서 저와 함께 찾아가보겠습니다! 위 홈페이지에 들어가면 아래와 같은 화면이 뜨는데요. 다운로드 메뉴를 클릭해서 들어갑니다. 그렇게 뜬 페이지에서 밑으로 죽 내려주면 아래와 같은 선택창이 뜹니다. 기부를 받는 페이지인..
앞으로 미르에 대해 공부를 하면서 차근차근 포스팅도 올려보려 합니다. 처음은 Mir란 무엇인가에 대한 포스팅입니다. 본문은 https://wiki.ubuntu.com/Mir/Spec 의 내용을 참조하여 작성한 것입니다. Mir는 우분투에서 X window system을 대체하는 차세대 디스플레이 서버입니다. 우분투 13.10버전에서는 미르를 설치하고 테스팅 해볼 수 있습니다. 이 때문에 저 역시 안정적으로 사용하던 12.04 LTS 버전의 업데이트를 생각중입니다. 또한 올해 4월에 출시 예정인 14.04 LTS 버전에서도 Mir가 정식으로 포함되지는 않을 것이라고 합니다. (http://www.phoronix.com/scan.php?page=news_item&px=MTUxOTQ) 그 만큼 미르는 아직 한..
C언어 qsort() 함수 C언어에서는 Quick sort를 손쉽게 사용할 수 있도록 라이브러리가 구현되어 있습니다. 함수의 프로토타입은 다음과 같습니다. void qsort (void *base, size_t nel, size_t width, int (*compare)(const void *, const void *) 함수명 : qsort 필요헤더 : stdlib.h 리턴타입 : void 파라미터 : 정렬 할 배열 배열의 총 엘리먼트 개수 배열 한 개의 크기 비교를 수행할 함수의 포인터 리턴값 : 없음 함수역할 : 퀵 소트(Quick sort)를 이용하여 배열을 정렬한다. 헤더파일 stdlib.h가 미리 선언되 있어야 하구요. 참고로 void * 라는 것은 어떠한 타입이든 상관없이 포인터를 받을 수 있..
sizeof가 어떤 구조체나, 배열의 전체 사이즈의 byte를 구해준다면, _countof 는 배열의 개수를 구하는 매크로 이다. * _countof는 비주얼스튜디오에서만 사용이 가능하다. 다음과 같은 예제를 보자.int arr[10] int 형 타입의 배열을 선언한다. 이 배열을 가지고 sizeof 와 _countof 를 사용한다면,sizeof(arr) 의 결과 값은 40 (4 바이트인 int 타입이 10개) _countof(arr) 의 결과 값은 10 (10개의 배열) 이 된다. _countof는 비주얼 스튜디오에서만 사용 가능한데, 사실 단순한 매크로일 뿐이기 때문에 우분투에서 사용하려면 간단히 매크로를 풀어주면 된다. #define _countof(_Array) sizeof(_Array) / si..
- Total
- Today
- Yesterday
- lua table
- observable
- 우분투 16.04
- typeScript
- qemu linux arm
- 타입스크립트
- terminal 색
- 안시 컬러
- git proxy
- Swift
- JavaScript
- NgZone
- itoa
- Zone.js
- C언어
- QT
- ZONES
- ECMA2015
- Angular
- vim
- 챗봇
- git 설정
- 폰트 조정
- Rx.js
- 스위프트
- 리눅스 터미널 색상
- 안시 색상
- ansi color
- angular2
- zone
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |