728x90
300x250
[C, C++] 멀티플렛폼 구현 - 원리
윈도우에서도 동작가능하고 리눅스에도 동작가능한 멀티플렛폼 코드를 작성해야할 일이 생깁니다.
이럴 땐 아래의 내용을 참고하시면 됩니다.
#ifdef WIN32 // Windows Platform
#else // Linux (Unix) Platform
#endif
위의 형태로서 선언하면 Multi Platform을 제어할 수 있습니다.
예를 들어 Delay(int)의 경우, Linux에서 지원하고, Windows에서는 Sleep을 지원합니다.
(단, Windows.h에서 지원)
이의 경우를 예를 들어서
#ifdef WIN32
#include <windows.h>
#else
#include <unistd.h>
#endif
이처럼 구현할 수 있습니다.
int System(const string)의 경우,
반환 자체를 System()함수가 하기 때문에 TRUE, FALSE로서 해당 운영체제가 지원하는 명령어가 올바른지 확인할 수 있습니다.
이를 응용해서
윈도우 환경에서 지원하는 CLS를 리눅스에서도 가능한지 판별할 수 있습니다.
if(System("cls"))
// 참
else
// 거짓
1. 맺는말
실제 멀티플랫폼을 수작업으로 구현하기 위해서는 무척 많은 태스팅을 수행해야 합니다.
반응형
'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글
[G++/C++]: std::to_string -> compiler error "not a member of std" - 오류 (12) | 2014.10.12 |
---|---|
[C++] String 함수 - 문자열 비교 방법 (9) | 2014.10.11 |
[C언어] pthread로 컴파일 하기 (3) | 2014.10.09 |
[C++] 문자열 입력 받기 - string (3) | 2014.07.07 |
[C++] 난수 생성 (1) | 2014.05.17 |