C++ 전역변수 선언 예제와 안 쓰는 방법 (global variable) 기본적으로, 전역변수는 일단 안 쓰는 게 가장 좋긴 합니다. 그렇지만 사용할만한 상황이 존재합니다.... 그렇지만 객체지향에는 "전역"이란 개념 자체가 없습니다. 가령, extern int nTemp;라고 선언을 한다면, nTemp가 object file 어딘가에 선언된 전역변수를 사용하겠다는 것이죠. 그리고, stdafx.cpp와 stdafx.h 파일에 전역변수를 선언하는 경우가 있는데, stdafx는 변동성이 거의 없는 것, 한번 선언하면 변하지 않는 형태의 것들만 골라서 넣어놔야 합니다. 때에 따라서 전역변수가 그러할 순 있으나, 변수가 거의 변하지 않는다면 굳이 변수일 이유가 없기도 하죠. 그래서 stdafx.cpp와 st..
애플리케이션은 동적으로 테이블의 존재 여부를 파악하여 테이블의 생성 여부를 결정해야 합니다. 이런 동작을 하기 위한 로직엔 두 개가 있습니다. 1. sqlite 테이블이 존재하면 건너뛴다 (삭제 후 생성되지 않음)2. sqlite 테이블이 존재하지 않으면 생성한다 (새롭게 생성됨) 1번 경우 예제1db.execSQL("create table if not exists month (NumericalValue integer);");cs "if not exists"란 명령어로 테이블이 존재하면 생성 과정을 건너뛰게 하였습니다. 예를 들어, 이미 존재하는 테이블일 경우엔 기존 테이블이 계속해서 사용됩니다. 2번 경우 예제12345678910111213141516SQLiteDatabase db = openOrCre..
컴파일러는 낮은 레벨에서 C# sealed 클래스를 micro-optimization 할 수 있습니다. 컴파일 타임에 C# sealed 클래스에 함수를 호출하면 callvirt IL 명령어 대신 IL 명령어를 사용합니다. C# sealed 클래스의 함수는 오버라이드 되지 않음.가상 함수 테이블 검사 과정을 생략.가상 함수 테이블은 조회 시간이 상대적으로 짦음.callvirt 보다 속도에서 유리함. 이렇기에 성능이 조금 좋아집니다. 최적화 중이라면 적용하세요. 즉, 다형성을 잃어버린 클래스라 선언했기에 컴파일러는 여러 검사 과정을 생략합니다. (확장되지 않는 클래스) 예를 들어, non-sealed 클래스에 makeNoise()란 함수가 있을 때, 이 함수의 재정의 여부는 알 수가 없습니다. 함수 재정의 ..
랩뷰(LabView)와 실시간 모니터링 융합, 측정과 산업 시스템 설계 이전 글 - LVDT와 랩뷰(LabView)를 응용한 실시간 모니터링 [링크] 8. 실험 결과와 분석 □ Thickness filtering 실험 ◯ 그림 9(a) : 흰색 줄은 표준 두께, 빨간점은 실제로 측정 제품의 두께 (랩뷰(LabView)) - 실시간 모니터링, 기준인 1cm는 오차 범위 0.05cm를 더한 값 ◯ 제품마다 각각의 서로 다른 기준을 가지고 있으며 기존에 많은 필터링 시나리오가 존재 - 각 시나리오에 대해서 필요한 데이터를 얻기 위해 1,000개의 세트에 대한 데이터 분석 ◯ 그림 10(a) : 필터링된 데이터의 길이 ◯ 그림 10(b) : 수집된 데이터의 통계 분석 □ Ground vibration 실험 ◯ ..