c언어 - 함수포인터 (Function pointer) 오늘은 함수포인터에 대해서 포스팅을 하도록 하겠습니다.포인터가 무엇인지는 다들 아실텐데요, 특정 변수에 대한 메모리 주소를 담을 수 있는 변수를 포인터 변수라고 합니다. 그렇다면 함수포인터란, 특정 함수에 대한 메모리 주소를 담을 수 있는 것 이라고 정의할 수 있겠습니다. 함수포인터를 쓰는 이유는 무엇일까요? 프로그램 코드가 간결해집니다. 함수포인터를 배열에 담아서도 사용할 수 있으므로 중복되는 코드를 줄일 수 있습니다. 상황에 따라 해당되는 함수를 호출할 수 있으므로 굉장히 유용합니다. 그 외에도 함수 포인터를 이용하여 콜백함수를 구현할 수 있게 되는 등 편리하고 유용한 코드를 작성할 수 있게 됩니다. 우선 함수포인터의 모양에 대해 알아보도록 하겠..
드림스파크 (https://www.dreamspark.com) 에서 학생들에게는 비주얼 스튜디오 최신버전을 무료로 제공한다는걸 얼마 전에 알게 되어서 새로운 버전에 대한 기대감에 비주얼 스튜디오 2013 을 다운받아 사용하고 있었습니다. 근데 비주얼 스튜디오 2013에서는 컴파일러가 강화되었는지, 예전 2010버전에서는 Warning 정도로 처리했던 unsafe 함수들에 대해 에러로 처리하여 컴파일이 되지 않습니다. 예를 들면 scanf, strcpy 같은 함수들을 사용하면 아래와 같은 오류창을 띄우며 컴파일에 실패합니다. "error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To dis..
리스트를 C언어로 작성하였습니다.이 리스트는 제일 앞의 노드(Front)와 제일 뒤의 노드(Back)에 포인터를 가지므로 스택 또는 큐로 사용할 수도 있습니다. 또한 리스트의 데이터들을 순서대로 소팅하는 함수도 구현되어 있습니다. 우선 소스코드들.. : 리스트의 코드 : 리스트의 헤더 : 테스트 한 main 코드 0. 구조체typedef struct _listnode{ int data; struct _listnode *next; } ListNode; typedef struct _list{ ListNode *front, *back; int size} List;구조체로 실제 노드로 구현된 ListNode와 노드의 시작과 끝을 가리키고 있는 List라는 구조체가 존재합니다. 제가 만..
안녕하세요?오늘은 우분투 12.04 LTS 버전에서 삼바 서버 구축하는 방법에 대해 포스팅을 하도록 하겠습니다. 삼바란, 우분투 - 윈도우간 공유폴더 역할을 해 줄 수 있는 서버를 말하는데요.저처럼 데스크탑에는 윈도우, 노트북에는 우분투를 설치하여 사용하는 사용자들에겐 아주 편리한 시스템입니다! (저는 또한 데스크탑-노트북간 마우스,키보드를 공유하는 Synergy라는 프로그램을 이용해서 마치 듀얼모니터인냥 사용하고 있습니다. 시너지에 대한 내용도 차후 포스팅 하겠습니다!) 당연한 얘기겠지만 우선은 같은 네트워크 안에 있어야 가능하구요 (ex. 같은 공유기 내에서 연결) 1. 패키지 설치samba에 필요한 패키지를 먼저 설치 해 주도록 합시다.$ sudo apt-get install samba smbfs ..
제 노트북이 많이 느려진 것 같아서 한 번 싹 밀고 우분투를 다시 설치하려 합니다. 저는 아직 우분투 13.04의 필요성을 느끼지 못하여 기존의 안정적인 12.04 LTS을 설치하려 합니다. 1. 우분투 이미지 파일을 다운로드 받습니다.http://www.ubuntu.com이 곳이 우분투 사이트입니다. 이 사이트에서 이미지 파일 다운로드와 USB로 부팅 디스크를 만드는 파일을 모두 다운로드 할 수 있습니다. 저는 데스크탑용 우분투가 필요하므로 Download - Desktop 메뉴를 선택합니다. 직접 링크는 다음과 같습니다.http://www.ubuntu.com/download/desktop 이 화면에서 32bit/64bit 중에 필요하신 것을 선택하시고 빨간 버튼을 누르시면 됩니다.저는 32bit가 필..
지난번에 이어 함수에 대한 기본을 포스팅하도록 하겠습니다. 지난번, 함수의 리턴타입이 void 타입일 때를 제외한 모든 타입이 리턴 값이 가진다고 얘기를 했습니다. 또한 반환할 수 있는 개수는 단 하나입니다. 변수 단위로 단 하나의 변수입니다. 만약 함수에서 처리되어 반환되어야 할 값이 2개 이상이라고 한다면, 포인터를 이용하여 파라미터로 넘겨서 처리를 하는 Call by reference 를 이용해야 합니다. 리턴 값이 2개 이상이 되는 경우 중 가장 흔하게 쓰이는 케이스로 Swap 함수가 있을 것입니다. 참고로 함수의 파라미터가 포인터형이나 더블 포인터형이면 해당 파라미터는 함수내에서 값이 바뀌어 올 가능성이 매우 큽니다. 이제 본격적으로 함수에 대해 알아보도록 하겠습니다. #include int f..
안녕하세요. 노루입니다. 며칠을 고민고민하다 첫 포스팅으로 c언어 함수에 대해 올리게 되는군요. 이런저런 계획을 세워 좋은 포스팅 할 수 있게 하겠습니다. Prototype 이라 함은, 여러가지 의미로 사용할 수 있겠지만 저는 그냥 '함수 원형' 이라는 표현을 씁니다. c언어 기본 라이브러리 헤더에서 제공하는 함수들을 우리는 수없이 많이 사용하고 있습니다. 우리는 이 각각의 함수들이 어떤식의 코드로 짜여져 있는지 알지 못합니다. 굳이 알 필요조차 없습니다. 하지만 아무리 라이브러리에서 수없이 많은 질좋고 편리한 함수를 제공한다고 하더라도 그 사용법을 모르면 사용할 수 없습니다. 그래서 우리는 사용법을 알기 위해 함수의 정의를 표현한 prototype을 찾아봅니다. 이 함수의 원형을 제대로 알고 있다면 더..
- Total
- Today
- Yesterday
- angular2
- qemu linux arm
- ECMA2015
- JavaScript
- lua table
- QT
- Swift
- zone
- 안시 색상
- git 설정
- NgZone
- ansi color
- C언어
- Rx.js
- 스위프트
- 우분투 16.04
- terminal 색
- 안시 컬러
- typeScript
- itoa
- 폰트 조정
- ZONES
- observable
- git proxy
- 챗봇
- 타입스크립트
- Zone.js
- Angular
- 리눅스 터미널 색상
- vim
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |