::public/C++63 (C++11) alignas alignas(n) 지정한 수의 배수만큼 구조체가 할당된다.(1 or 2 의 배수로 설정해야함) struct alignas(32) Alignas { int i4;// 4 byte char c[3];// 3 byte short s2;// 2 byte }; Alignas al; cout 2023. 1. 18. byte padding(바이트 패딩) 바이트 패딩 성능향상을 위해서 클래스나 구조체의 경우, 가장 큰 사이즈를 차지하는 자료타입에 맞춰 현재 데이터타입 뒤에 임의의 바이트를 추가하여 CPU가 메모리 공간에 접근하기 용이하게 해준다.(컴파일러의 최적화 기능) class BytePadding { int i4;// 4 byte char c[3];// 3 byte short s2;// 2 byte }; BytePadding bt; cout 2023. 1. 18. (C++11) chrono OS 독립적으로 정밀한 시간 측정 가능. 나노초 단위까지 측정 가능. 특정 연상 전후로 time_point를 측정하고, time_point 차이를 이용하여 실제 연산 시간을 계산한다. *프로그램 동작 시간을 제대로 측정하려면 VisualStudio 에서 Release 모드로 빌드해야 한다. 에 정의되어 있음. auto start = chrono::system_clock::now(); // code auto end = chrono::system_clock::now(); auto msec = chrono::duration(end - start).count() * 1000; cout 2023. 1. 4. GetCurrentDirectory, GetModuleFileName GetCurrentDirectory ; 실행중인 파일의 현재 작업 디렉토리 얻어오기. #include #include DWORD WINAPI GetCurrentDirectory(DWORD nBufferLength, LPTSTR IpBuffer) ---------- int main() { char strPath[MAX_PATH]; GetCurrentDirectory(MAX_PATH, strPath); printf("%s\n", strPath); return 0; } Colored by Color Scripter cs GetModuleFileName ; 자신의 실행 경로 받아오기. #include #include DWORD WINAPI GetModuleFileName(HMODULE hModule, LPSTR.. 2021. 7. 1. GetTickCount, GetTickCount64 시스템이 시작한 시점부터 이 함수를 호출한 시점까지 흘러간 시간을 1000분의 1초(ms) 단위의 시간을 알려주는 함수. #include DWORD GetTickCount();ULONGLONG GetTickCount64(); // GetTickCount 함수를 사용하면 시스템이 시작한 지 49.7일 지나는 시점에 오버플로 발생.// GetTickCount64 함수를 사용하는 것이 안전함. ---------- int main(void) { DWORD startTime = GetTickCount(); // 시작 시간 // 작업중.. DWORD endTime = GetTickCount(); // 완료 시간 DWORD intervalTime = endTime - startTime; // 작업 소요 시간} boo.. 2021. 6. 4. MSB8020 에러 vs2019 버전보다 아래 버전에서 빌드를 하면 생기는 오류. vs2019 버전으로 릴리즈 되면서 같이 v142빌드 도구가 생겨난 것이기 때문. 해결방법은 1. 2019버전으로 다시 깔아준다. 2. 빌드 버전을 바꿔준다. v142버전은 vs2019버전만 사용가능하기 때문에 자신에게 맞는 vs 버전으로 바꾸자. 프로젝트 > 속성 선택. 구성 속성 > 일반 > 플랫폼 도구 집합에서 자신의 vs 맞는 버전으로 선택하고 적용하면 됨. ex> Visual Studio 2017 (v141) 2021. 1. 6. 이전 1 2 3 4 5 ··· 11 다음