노트북 화면 밝기 조절 프로그램
Mutex와 크리티컬 섹션은 모두 동기화 기법으로서, 여러 스레드가 공유 자원에 안전하게 접근할 수 있도록 도와줍니다. 그러나 이 두 가지 접근 방식 간에는 성능상의 차이가 있습니다. 1. Mutex: - 동작 방식: Mutex는 잠금 메커니즘을 사용하여 공유 자원에 대한 접근을 제어합니다. 스레드는 mutex를 획득하기 위해 경합하고, mutex를 사용하는 스레드가 해당 자원을 사용 중이면 다른 스레드는 대기해야 합니다. - 성능: 일반적으로 Mutex는 더 많은 오버헤드를 가지고 있습니다. Mutex의 획득과 해제에는 시스템 호출이 필요하며, 이로 인해 더 많은 오버헤드가 발생합니다. 또한, Mutex는 운영 체제에서 지원하는 여러 기능을 제공하기 때문에 크기가 더 큰 객체입니다. 2. 크..
mfcs42.pdb VC98\MFC\Lib
회사 업무로, 남이 짠 코드 분석중인데...아 진짜 어렵게 작성해 놓았다....그냥 한숨만나온다...ㅎㅎ 아니, 이걸 꼭 이렇게 꼬아놓아야 하나?내가 C언어만 20년 넘게 했는데, 이 코드는 도대체 뭘 하는지 알 수 가 없네...하....답없네...(만든 사람은 알겠지...만든 사람이 여럿. 현재 담당자도 잘 모름) "아이고, 이걸 왜 여기에 넣어 놯어???" "이걸 꼭 이렇게 작성해야해??"(이거 몇줄 확인하느라 지금 몇시간째....) 안정적인 코드를 작성하려면,- malloc, new등의 동적 메모리 사용은 최대한 금지해야합니다. 리셋되거나, 먹통되는 주요 범임이 메모리 릭입니다. 따라서, 365일 돌아가야하는 프로그램에서는 어쩔 수 없는 경우에만 사용해야 합니다. 이 프로그램은 쓰레드, ..
Protocol Buffers (프로토콜 버퍼) 또는 protobuf는 구글에서 개발한 언어 중립적이고 플랫폼 중립적인 직렬화 라이브러리입니다. 데이터를 구조화된 방식으로 직렬화하고 역직렬화하기 위한 메커니즘을 제공합니다. 주로 원격 프로시저 호출(RPC), 데이터 저장, 네트워크 전송 등에서 사용됩니다. 주요 특징 1. 효율성: 바이트 단위의 이진 포맷을 사용하여 직렬화되므로, JSON이나 XML에 비해 훨씬 더 작은 크기와 빠른 속도를 자랑합니다. 2. 언어 중립성: 여러 언어(C++, Java, Python, Go 등)에서 사용할 수 있습니다. 3. 확장성: 프로토콜 버퍼는 하위 호환성을 유지하면서 스키마를 쉽게 확장할 수 있습니다. 기본 사용법 1. '.proto' 파일 작성 프로토콜 버퍼를 사용..
C 언어로 작성된 소스 코드는 대부분의 운영 체제에서 동작할 수 있습니다. 따라서 우분투 및 윈도우에서 동시에 동작하는 C 언어 소스 코드를 작성하는 것은 일반적으로 어렵지 않습니다. 하지만 특정 운영 체제에 의존하는 기능을 사용하는 경우 해당 운영 체제에서만 동작할 수 있습니다. 다음은 우분투 및 윈도우에서 동시에 동작하는 C 언어 소스 코드를 작성하는 방법에 대한 몇 가지 지침입니다: 1. 플랫폼 독립적인 코드 작성: - 가능한 경우, 플랫폼에 의존하지 않는 코드를 작성하세요. 플랫폼 독립적인 함수 및 라이브러리를 사용하여 모든 운영 체제에서 동작하도록 하세요. 2. 조건부 컴파일 사용: - 운영 체제에 따라 다른 동작을 수행해야 하는 경우, 조건부 컴파일 지시문을 사용하여 특정 운영 체제..
llvm-프로젝트 GitHub - llvm/llvm-project: The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. - llvm/llvm-projectgithub.com - Clang: LLVM 위에 구축된 C/C++/Objective-C 컴파일러.- LLVM(Low-Level Virtual Machine): 재사용할 수 있는 모듈러 컴파일러 툴체인- LLVM은 컴파일러 인프라스트럭처- 문제점 : 용량이 너무 크다 Cl..
Objective-C는 Apple의 macOS 및 iOS 운영 체제에서 주로 사용되는 프로그래밍 언어입니다. Objective-C는 초기에 NeXT 컴퓨터에서 개발된 언어로, 현재는 Apple이 macOS 및 iOS 애플리케이션 개발을 위해 사용하는 언어 중 하나입니다. Objective-C의 장점 1. 간결한 문법과 동적인 특성 - Objective-C는 Objective-C 메시지 전달과 같은 동적인 특성을 통해 유연하고 간결한 코드를 작성할 수 있습니다. 2. C 언어 호환성 - Objective-C는 C 언어의 모든 기능을 포함하고 있어, 기존의 C 코드와의 호환성이 뛰어나며 C 언어로 작성된 라이브러리를 쉽게 통합할 수 있습니다. 3. 객체 지향 프로그래밍 - Objective-C는 객체 지향 ..
https://gist.github.com/Tomwi/3842231 fix_fft.cGitHub Gist: instantly share code, notes, and snippets.gist.github.com/* FIX_MPY() - fixed-point multiplication & scaling. Substitute inline assembly for hardware-specific optimization suited to a particluar DSP processor. Scaling ensures that result remains 16-bit. */ inline short FIX_MPY(short a,short b) { /* shift right one less bit (i.e. 15-1) *..
//UTF-8 -> UNICODE -> CP949 void strcpy_UTF8(char *buf,char *s)//max=1024 { if(buf)if(s) { wchar_t bufw[1024]; MultiByteToWideChar(CP_UTF8,0,s, -1,bufw,1024); WideCharToMultiByte(CP_ACP,0,bufw, -1,buf,1024,NULL,NULL); } } void myprintf(char *fmt,...) { char buf[4096]; // 버퍼 크기는 필요에 따라 조절 가능 va_list args; va_start(args, fmt); vsprintf(buf, fmt, args); va_end(args); OutputDebugString(buf); Sleep(1..