'프로그래밍/C++ \ C#' 카테고리의 글 목록
본문 바로가기
반응형

프로그래밍/C++ \ C#5

반응형
VS Code 에서 들여쓰기 탭(Tab) 과 스페이스(Space) 설정 변경 VS Code 는 들여쓰기 설정이 기본적으로 스페이스 4칸으로 되어 있다. VS Code 에디터 최하단에 보이는 이 글자를 클릭하거나 shift + ctrl(mac:cmd) + p 로 커맨드팔렛트를 띄워서 Indent 를 입력하면 아래와 같은 팝업이 뜬다. 이것을 통해 들여쓰기를 탭과 스페이스 둘 중에 하나로 선택 할 수 있다. 이렇게 설정을 바꾼 후 shift + alt(mac:option) + f 단축키로 해당 파일의 포맷을 재적용할 수 있다. 이 방법은 각각의 파일마다 적용되기 때문에 새 파일을 열었을 때는 또다시 원하는 들여쓰기 설정을 매번 적용해 줘야 한다. 아예 파일 오픈 시 원하는 들여쓰기 설정을 기본 적용하는 방법을 알아보자. VS Code 의 설정창을 열고 editor tab 을 입력한 .. 2022. 11. 28.
[C++] time_t 타입 및 tm 구조체 설명과 관련 함수들(mktime, localtime, gmtime...) 사용 방법과 UTC 변환 1. time_t 소개 C++ 에서는 UTC 1970년 1월 1일 00:00:00로부터 시간을 초(second)단위로 카운트하여 time_t 라는 타입으로 제공한다. (time_t 타입은 int64 를 typedef 으로 정의하고 있다.) 즉, 1970년 1월 1일 자정을 기준으로 시스템의 타임 서비스에서 가져온 time_t 값은 0이며 이후 초당 1씩 추가로 카운트 된다. 이 외에 time_t 형식을 년월일시분초 형태로 분할한 일시(struct tm 형식)로 변환하는 gmtime(gmtime_s)과 localtime(localtime_s) 함수가 있다. 또한 struct tm 형식을 time_t 형식으로 변환하는 mktime(_mkgmtime, timegm)이 있다. 2. tm 구조체 위에서 설명한 t.. 2020. 3. 30.
[C#/.NET] 네임스페이스(Namespace) 내의 클래스(Class) 들을 동적으로 생성하는 방법 특정 네임스페이스(Namespace) 로 묶여 있는 다수의 클래스 들을 미리 한번에 생성해야 하는 경우가 있다. 예를 들어 다양한 음식 메뉴들을 보여줘야 하는 경우 각각 Food 클래스에서 상속받은 각 음식들을 앱이 실행되는 순간 미리 객체를 생성한다고 하자. 간단하게 아래와 같이 구현할 수 있을 것이다. 보는 바와 같이 Card 라는 네임스페이스 하의 클래스들 마다 인스턴스를 생성해 줘야 한다. 그런데 서비스를 하다 보면 앞으로 무수히 많은 카드 클래스들이 계속해서 추가 될 것이다. 이렇게 카드 클래스가 추가 되면 그때마다 해당 카드의 인스턴스를 생성하는 코드를 하드 코딩으로 입력해야 하며 만약 카드 클래스의 종류가 수십 수백개나 된다면 노가다 및 가독성, 실수 가능성 등이 더욱 부각될 것이다. 이를 .. 2019. 10. 23.
[C#/.NET] Nullable : ? (Null 조건 연산자) 코딩을 하다보면 인자로 넘긴 primitive 타입의 변수를 2가지 용도로 사용하는 경우가 있다. 예를 들면 int 형 변수를 갯수로 사용하기 위해 넘기되 그 값을 정상적인 상황에서 들어가지 않을 값으로 넣어서 예외처리를 하는 경우다. 1 2 3 4 5 6 7 8 9 10 public void TestFunc(int count) { if (count == -1) // or count == int.MaxValue { Reset(); return; } m_cnt = count; } c# 또는 bool 형의 추가 인자를 넣어서 기능을 분리할 수도 있지만 어쨌든 이쁘지 않다. 이런 경우 Null 조건 연산자를 사용하면 훨씬 깔끔하게 처리할 수 있다. 단지 변수 선언 시 ? 하나만 추가해 주면 값 타입(value.. 2019. 9. 3.