Language (37)
-
2022.05.06 [C++] 함수 포인터
함수 포인터 함수의 주소값을 저장하는 포인터 (함수의 시작 주소를 가리킨다) 함수 : 프로그램(exe 파일)이 실행될 때, 우리가 소스파일에 정의한 모든 함수가 메인 메모리(프로그램이 실행되면서 할당받은 메모리)에 올라간다. 이때. 우리가 작성한 함수이름은 함수의 시작 주소를 가리키는 포인터가 되는데, 이 포인터가 가리키는 주소가 변경되면 안되니까.. 포인터 상수로 함수의 시작 주소를 가리키게 된다. 이것을 함수 포인터 라고 부른다. 포인터 상수 : const ptr 포인터를 상수로 처리했다 는 의미이다. ---> "포인터를 상수로" 라고 생각하면 쉽다. cf. 상수 포인터 : ptr 상수를 가리키는 포인터 라는 의미이다. ---> "상수를 가리키는 포인터" 라고 생각하면 쉽다. ① 함수 포인터 선언 문..
-
2022.04.01 [C++] 문법 - 범위 지정 연산자
C++에서 가장 우선순위가 높은 연산자는 바로 범위 지정 연산자입니다. 범위 지정 연산자(::)는 여러 범위에서 사용된 식별자(identifier)를 식별하고 구분하는데 사용하는 연산자입니다. 이러한 식별자로는 변수, 함수 또는 열거체가 올 수 있습니다. 범위 지정 연산자를 변수의 이름 앞에 붙이면 해당 변수는 전역으로 사용하라는 의미로 쓰이게 됩니다. 또한, 클래스에 이 연산자를 사용하면 네임스페이스 멤버를 식별하거나, 클래스의 정적 멤버를 호출할 수 있습니다. C++에서 범위 지정 연산자를 사용하기 위한 문법은 다음과 같습니다. 문법 1. ::식별자 2. 클래스이름::식별자 3. 네임스페이스::식별자 4. 열거체::식별자 더보기 언리얼 FString::FromInt() 방식은 2번 방식으로, From..
-
2021.05.11 구조체 메모리 할당 위치, 범위 고정시키기 1
class 또는 struct 객체의 크기는 필드의 크기보다 크게 표시될 수 있다. 1 2 3 4 5 6 struct A { public int i; // 4 public double d; // 8 public byte b; // 1 } cs A 구조체의 경우, 크기를 4+8+1 = 13 으로 생각할 수 있지만, 실제 객체 사이즈를 확인해보면 24로 확인할 수 있다 * ex. Marshal.SizeOf( typeof( A ) ); 왜냐면, C# / .NET 에서 자동으로 Field Ailgnment 규칙에 따라 객체 크기를 맞춘 것이다. * C# / .NET 에서의 Field Ailgnment 규칙 : 8바이트 바운더리 -> 내 생각에, 2^n, 8^n 등 배수 규약에 맞춰지지 않은 크기여서, 특정 배수보..
-
2020.10.20 c# Color 와 Color32 색상 범위 차이
https://chopchops.tistory.com/m/15https://forum.unity.com/threads/what-is-the-difference-between-color-and-color32.824196/ color 는 0~1 값으로 표현한다 > 부동소수그래서 1보다 큰 값을 넣으면 하얀색으로 나옴 color32 는 8비트 > 0~255 값으로 표현한다 > 상수
-
2020.10.08 [C#] const, readonly 차이
용도 차이 : 초기화 시점을 바꾸고 싶을 때 필요한 걸 사용 const : 상수. 생성 시 바로 초기화해야한다. 이후에 변경 불가 readonly : 상수처럼 사용. 생성자에서 초기화 가능하다. 생성자 외의 함수에서는 변경 불가
-
2018.03.21 C++ for_each 함수
C++ / for_each 함수 제공하는 반복자 사이의 모든 요소를 각각 방문하여 작업을 처리하는 함수.즉, for_each 함수의 3번째 인자로 전달받은 함수나, 객체의 오버로딩 된 ( )연산자(연산자오버로딩)에 컨테이너 요소 값을 전달하는 것을 의미 ex) ⓛ class CMyClass{public: // (당연히) 퍼블릭으로 해주어야합니다.void operator( ) ( CTestClass& test ){delete test;test = NULL;}} vector vec; // 사이 코드는 초기화 및 값이 들어가있다고 가정합니다.... for_each( vec.begin( ), vec.end( ), CMyClass( ) ); /// vec 변수에 들어가있는 begin부터 end 앞까지의 CTest..
-
2018.02.28 wsprintf 정리
원형 int wsprintf(LPTSTR lpOut, LPCSTR lpFmt, ... ); 인수 1. lpOut : 완성된 서식이 해당 변수에 담긴다. 최대 길이 1024 바이트. 2. lpFmt : 서식 문자열, 일반 문자열 사이에 %로 시작되는 서식 포함 가능 3. ... : 서식 문자열 내의 서식과 대응되는 변수. 서식의 개수만큼 변수를 제공해야함. ▶ lpFmt, ... 부분은 printf 함수와 동일하며, 해당 완성된 문자열이 lpOut 변수에 담기게 된다 리턴 성공할 경우, 버퍼로 복사된 문자 개수를 리턴해준다. 널 종료 문자는 개수에서 제외됨. 실패할 경우, 예상된 출력보다 더 작은 문자수가 리턴됨. 이 경우 GetLastError 함수로 실패 원인 파악 가능.예제..
-
2018.01.10 [C++] 중첩 클래스 사용 이유
중첩 클래스는 class 내부에 class를 선언하는 것이다 보통, 외부 class에 내부 class를 선언하는 경우에 / 내부 class를 private 으로 정의한다. 왜냐하면, 특정 클래스 안에서만 사용하는, 또다른 클래스 자료형이 필요할 경우에 이러한 방식을 사용하기 때문이다. https://m.blog.naver.com/PostView.nhn?blogId=kks227&logNo=220179773371&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
-
2018.01.10 문자열 코딩 - [아스키코드, 멀티바이트, 유니코드]
VS 프로젝트 속성 -> 구성속성을 보면문자 집합으로 2가지를 사용할 수 있다.1. 멀티바이트 문자 집합2. 유니코드 문자 집합 아스키 코드(SBCS) - 모든 문자 하나가 1byte를 차지하며 영어를 표현한다. 하지만 아스키 문자 코드 만으로는 한글이나 일어 등의 다른 문자를 표시할 수 없다. 멀티바이트(MBCS) - 1. 아스키 문자 코드에다가 다른문자(2byte)들을 포함한 문자 집합이다.어떤 문자는 1byte고, 어떤 문자는 2byte이다.정확히는 모르겠지만, 한 문자가 2byte를 넘는 문자도 존재할 것이다. 2. 멀티바이트 문자 집합은 특정 문자 집합마다의 코드페이지가 존재한다.예를 들어, 같은 코드 번호 일지라도 한글 코드 페이지로 해석하면 한글이 나오지만,일어 코드 페이지로 해석하면 ..
-
2017.12.28 [C++] variadic template
variadic template 은... 템플릿의 인자를 가변적으로 받을 수 있도록 구현하는 방식이다 참고)variable argument (다양한 인수의 표현) 이것의 심볼로는 ... 을 사용합니다. variadic template을 함수 템플릿 / 클래스 템플릿 2가지로 나누어서 간략히 설명합니다. 12345678910111213 template // template parameter packvoid Function( const Arg1& arg1, const Args&... args ) // function parameter pack{ Test( arg1 ); Function( args... );} void main(){ Function( 1, "ezreal very handsome", 1.5f )..