![[C++] 구조체 패딩](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkBToA%2FbtsGWVwvDjV%2F0cFOPiEvDfQBn45qrVUOmk%2Fimg.jpg)
구조체 패딩구조체 멤버변수들을 메모리에서 CPU로 읽을 각 시스템의 워드(word) 경계에서 읽어오는 것이 효율적이기 때문에 컴파일러가 (성능상의 이유로)레지스터의 블록에 맞춰 최적화 하는 작업이다.123456789101112131415161718192021222324#include iostream>using namespace std; struct Ex1{ // int = 4byte, double = 8byte int x, y, z; double d; int f;}; struct Ex2{ int x, y, z, f; double d;}; int main(){ cout sizeof(Ex1) endl; // 32 cout sizeof(Ex2) endl;..
![[유니티] GitHub와 연동하여 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8ckfG%2FbtsG5Jiahom%2FPkmNlPKYAo1BGosTrSAUvK%2Fimg.jpg)
✅ Git(깃)으로 연동하여 사용하는 법1. 회원가입 후 Create new repository 한다. [레파지토리 설정]➡️ 외부 공개를 할 거면 Public, 안 할 거면 Private로 설정한다.➡️ 유니티에 사용할 거면 Add .gitignore 부분에서 Unity를 선택한다. (그러면 Asset을 제외한 필요 없는 파일은 올라가지 않게 된다)2. GitHub Desktop을 설치한다.https://desktop.github.com/3. GitHub Desktop 상단 부분 File -> Clone repository -> 원하는 위치 선택 후 clone을 누른다.4. (만약 유니티에서 기존에 하던 프로젝트가 있었다면) 기존에 작업하는 프로젝트 폴더의 파일들을 전체 다 복사해서 깃 폴더에 들어가서..
![[C++] union (공용체)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbSpBz%2FbtsGUMfvGnU%2F3w9xj7ZoGWCkftsVysPyPk%2Fimg.jpg)
union (공용체) 서로 다른 데이터형을 한 번에 한 가지만 보관할 수 있는 데이터 형식(구조체는 int형과 double형을 한꺼번에 보관할 수 있지만, 공용체는 int형이나 double형 중에서 한 번에 어느 하나만 보관할 수 있음)구조체(struct)와 거의 동일하지만 모든 멤버 변수가 하나의 메모리 공간을 공유한다는 점이 다르다. 즉, 공용체(union)는 내부에 여러가지 타입의 멤버 변수를 선언하지만 실제 사용할 때에는 하나의 멤버 변수만 사용할 수 있다. 특징한 번에 하나의 값만 보관할 수 있으므로, 가장 큰 멤버를 보관할 수 있을 만큼의 공간이 필요하다. (따라서 공용체의 크기는 가장 큰 멤버의 크기가 됨)멤버 변수끼리 같은 메모리 공간을 공유하기 때문에 각 멤버들의 메모리 시작 주소가 동일..
![[전자 계산기 구조] 플린 분류](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4ycYu%2FbtsGST0RlzQ%2FtzAWIQfGvSr4Yj8rB0rRe1%2Fimg.jpg)
★KEYWORD★플린 분류 : 컴퓨터 구조 분류 / 명령어와 데이터 입력의 개수에 따라 구분 / SISD / SIMD / MISD / MIMD플린 분류 (Flynn's taxonomy)스탠퍼드 대학교의 전기공학과 교수인 마이클 J. 플린이 1966년에 제안한 컴퓨터 구조 분류이다.명령어(Instruction)와 데이터 입력(Data stream)의 개수에 따라 구분한다.분류플린이 정의한 네 가지 분류는 아키텍처에서 사용 가능한 동시 명령어 수 또는 데이터 스트림에 기초한다.SISD(Single Instruction, Single Data stream)SIMD(Single Instruction, Multiple Data streams)MISD(Multiple Instruction, Single Data s..
![[C++] Dynamic Cast (타입 캐스트 연산자)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpXcxS%2FbtsGUQgTyGS%2FFa4cpXbyvqdvexgCKGFZl1%2Fimg.jpg)
Dynamic Cast동적으로 형변환시키고, 형변환에 실패할 경우 nullptr를 리턴한다.부모 클래스의 포인터에서 자식 클래스의 포인터로 다운 캐스팅 해주는 연산자이다.class의 상속관계에서 형변환을 프로그래머가 올바르게 하도록 도와주는 기능을 제공한다.Dynamic Cast 사용 제약 사항상속 관계 안에서만 사용 가능하나 이상의 가상함수를 가지고 있어야 함 사용법dynamic_cast (변환할 내용)dynamic_cast(temp); 예제12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include stdio.h> class Test_ClassA{public: ..
![[C++] Lambda](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGSdC7%2FbtsGSPjbGg3%2FsLcLrD0cS4Z7cnRGzx1y4K%2Fimg.jpg)
Lambda람다 함수는 아래와 같이 대괄호[], 소괄호(), 중괄호{}, 소괄호() 이런 모양으로 생겼다.(여기서 생략이 가능한 건 소괄호들) [] ( ) { } ( )[캡처] (매개변수) { 함수 동작 } (호출인자)첫 번째 [] : 캡처두 번째 () : 매개변수 선언 부분 (생략 가능 - 매개변수 필요 없을 때)세 번째 {} : 함수 동작 부분네 번째 () : 함수 호출 시 인자 (생략 가능 - 호출 시에만 사용)람다 캡쳐람다에서는 [ ] ➡️ 이 대괄호 모양을 캡처라고 한다.캡처는 람다 외부에 정의되어있는 변수나 상수를 람다 내부에서 사용하기 위해서 사용한다. 캡쳐의 방식참조로 캡처 ➡️ &변수이름복사로 캡처 ➡️ 변수이름모든 외부 변수에 대해 참조 ➡️ [&]모든 외부 변수에 대해 복사➡️ [=..