프로그래밍/의문
-
텅 빈 클래스 또는 구조체는 왜 0 사이즈가 아닐까?프로그래밍/의문 2021. 10. 23. 20:10
클래스 또는 구조체가 사이즈 0이 될 경우 서로 다른 2개의 인스턴스가 같은 주소를 가질 수 있게 되므로, 텅 빈 클래스 또는 구조체라도 최소 1바이트 이상의 크기를 가진다. 그러나 최적화 옵션에 따라 1바이트를 표현하지 않는 규칙도 있는 듯.(empty base class optimization) class Empty {}; struct X : Empty { int a; // ... }; void f(X* p) { void* p1 = p; void* p2 = &p->a; if (p1 == p2) cout
-
UE4 데디케이티드 서버 만들기 샘플프로그래밍/의문 2021. 5. 29. 15:58
그냥 이거 따라하면 됨. Setting Up Dedicated Servers | Unreal Engine Documentation Setting Up Dedicated Servers How to set up and package a dedicated server for your project. docs.unrealengine.com 1. github에서 UE4 소스를 받는다. UE4 소스는 private 저장소에 있으므로 에픽 게임즈 개발자 등록을 해야 접근이 가능. 저장소 링크: EpicGames/UnrealEngine: Unreal Engine source code (github.com) 2. 소스 다운로드 후 Windows에선 Setup.bat을 실행 후 완료 대기. 3. Windows이므로, Ge..
-
Flatbuffers로 만들어진 바이너리 식별 방법프로그래밍/의문 2021. 5. 10. 01:58
결론: flatbuffers 바이너리에 헤더를 붙여서 쓰자. 플랫버퍼 바이너리는 바이너리 자신이 무엇인지 설명하지 않음. 즉, 플랫버퍼로 어떤 메세지를 직렬화 했을 때 이 직렬화된 메세지를 어떤식으로 해석해야 할 지 알 수 없다. file identifier 파일 확장자처럼, 플랫버퍼 바이너리를 어떤식으로 해석해야 하는지 플랫버퍼 바이너리에 identifier를 기입할 수 있다. identifier를 기입하려면 FlatBufferBuilder::Finish 또는 FlatBufferBuilder::FinishSizePrefixed 함수에 identifier를 입력한다. 단 identifier의 길이에는 제약이 있는데, 정확하게 4글자여야 한다는 것이다. 그리고 identifier를 이용한 바이너리는 fla..
-
신기한 Unity Engine의 Destroy프로그래밍/의문 2020. 12. 13. 01:13
Unity에서 어떤 GameObject를 Destroy 되면, 그 GameObject를 참조하는 다른 곳에서도 null체크 할 수 있더라. 상식적으로는 댕글링 포인터가 되어야 하는데 말이다. public class A : MonoBehaviour { GameObject monster; // B의 monster와 같은 인스턴스 // ... void Test() { Destroy(monster); } } public class B : MonoBehaviour { GameObject monster; // A의 monster와 같은 인스턴스 // ... void Test() { if (monster == null) {// A에서 Destroy를 했는데 B에서 null체크가 됨! } } } 사실 이는 일종의 트릭..
-
[UE4]월드에 Player Start Actor가 있는데 Player Character가 스폰되지 않음프로그래밍/의문 2020. 9. 15. 15:20
플레이 모드가 시뮬레이트(Simulate)로 되어 있어서 스폰되지 않았다. 시뮬레이트 모드의 단축키가 Alt+S로 되어있어서, 나도 모르게 Alt+S를 눌렀던 거 같다. 아마 파일을 세이브 하던 버릇 때문에. 플레이 모드를 선택된 뷰포트(Selected Viewport)로 변경하자 정상적으로 스폰 되었다. 아래 글을 참고하였다. https://answers.unrealengine.com/questions/166517/player-start-not-working.html
-
Json의 NewLine은 \n프로그래밍/의문 2020. 8. 15. 01:17
Json의 NewLine은 \r\n인가 \n인가 궁금해서 찾아봄. 결론은 \n 3. Line Separator is '\n' This means '\r\n' is also supported because trailing white space is ignored when parsing JSON values. The last character in the file may be a line separator, and it will be treated the same as if there was no line separator present.
-
왜 MTU 사이즈는 1500 bytes 인가?프로그래밍/의문 2020. 8. 5. 10:59
https://community.cisco.com/t5/other-network-architecture/why-the-mtu-size-is-1500/td-p/105418 Why the MTU size is 1500 ? Can somebody explain that why the Ethernet Maximum Transmission Unit was chosen to be 1500 bytes (why exactly 1500) ? It might have some historical reason. Thanks, Nadeem community.cisco.com 1. The standard set by IEEE802.3 specifies the MTU of Ethernet is 1500 bytes. 2. Ther..