함수의 초기화 과정에서 종종 goto문을 사용하곤 한다. 예를 들면 열 가지 정도의 변수에 메모리를 할당 해 주는데, 다섯번째쯤 되는 변수를 처리하는 과정에서 오류가 발생했다고 가정해보자. 그럼 앞에 메모리가 할당된 네 개의 변수는 어떻게 될까? 할당해놓고 해제해 준 적이 없으니 메모리 누수상태가 된다. (Memory Leak) 그래서 변수 처리중에 에러가 발생 하면, 바로 return을 해버리는게 아니라 goto문을 이용하여 error 처리부로 이동시켜 메모리 해제해주는 작업을 거치게 된다. 윈도우에서 제공하는 try-finally 와 유사하다고 보면된다. goto문을 사용하는 간단한 예제는 다음과 같다. int Initialize() { // 이 예제에서는 CDialog라는 클래스가 있다고 가정한다...
[Qt] QString의 문자열 처리 다음 환경을 사용하였습니다. 환경이 다를 경우, 일부 API가 동작하지 않을 수 있습니다. [OS: Ubuntu 14.04.1 LTS] [Qt Version: 5.4] Qt에서는 문자열처리에 관련하여 다양한 API들을 제공하고 있다. 기본적으로 QString은 std::string 과 유사하다. 이 QString을 기본으로 하는 여러 API들이 있다. 레퍼런스를 이용하여 문자열간 복사가 일어나지 않게 하는 QStringRef 스트림처리 방식의 QTextStream 가 있다. QString의 특징 중 하나는 유니코드 인코딩을 지원한다는 점이다. UTF-8과 UTF-16의 방식을 지정하여 사용 가능하다. [QString 메뉴얼](http://doc.qt.io/qt-5/q..
유니코드란 무엇일까? (UTF8과 EUC-KR 비교) 유니코드는 다국어를 지원하는 프로그래밍을 하다보면 가장 먼저 접하는 어려움이다. 일단 유니코드라는 용어의 개념부터 정리해보도록 하자. 조금 공부한 사람들은 ASCII, EUC-KR, CP949, UTF8, UTF16 같은 것들을 알고 있을 것이다. 그럼 문제, 이 중에 뭐가 유니코드(Unicode)일까? 이 중에 유니코드 그 자체인 것은 없다. 그나마 UTF-8, UTF-16에는 50점 줄 수 있을 것 같다. 이들은 유니코드를 '사용'하는 인코딩 방식이기 때문이다. EUC-KR도, CP949가 유니코드가 아닌가? 라고 생각하는 사람도 있을것이고, 유니코드란 2바이트로 표현하는 문자셋이 아닌가? 라고 알고있는 사람들도 있을 것이다. 이제는 잊어야한다. ..
* 다음 환경을 사용하였습니다. 환경이 다를 경우, 일부 API가 동작하지 않을 수 있습니다. [OS: Ubuntu 14.04.1 LTS] [Qt Version: 5.4] QFontMetrics 클래스를 이용하면 된다. 단, 딱 정확한 크기를 구하기 때문에, margin값을 따로 주어야 한다. int QFontMetix::width(QChar ch) const; int QFontMetix::width(const QString &text, int len, int flags) const; int QFontMetix::width(const QString &text, int len = -1) const; 함수 이름: width함수 역할: 입력받은 글자의 Pixel 사이즈를 구한다.함수 설명: 각 글자의 logi..
- Total
- Today
- Yesterday
- itoa
- NgZone
- ansi color
- zone
- 안시 컬러
- vim
- 안시 색상
- angular2
- terminal 색
- qemu linux arm
- JavaScript
- ECMA2015
- C언어
- Rx.js
- 타입스크립트
- 스위프트
- ZONES
- Angular
- Swift
- 폰트 조정
- lua table
- Zone.js
- typeScript
- 우분투 16.04
- QT
- git 설정
- git proxy
- 리눅스 터미널 색상
- 챗봇
- observable
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |