보통 윈도우에서는
코드:
#if (defined(_MSC_VER) && defined(WIN32))
와 같이 define 되어 있지않습니까?
_MSC_VER는 VC++의 버전을, WIN32 는 32비트 윈도우를 의미하는 것으로 알고 있는데..
64비트 윈도우는 어떻게 구별하는지요?
그리고 리눅스, 여러 회사의 유닉스 등은 어떻게 구별하는지요?
이미 정해진 것이 있는지요? (규약이라도..)
아니면 프로그래머가 알아서 정해놓고 써야 하는것인지요?
예를 들어
코드:
#define PLATFORM_LINUX
#define PLATFORM_UNIX_HP
#define PLATFORM_WIN32
#define PLATFORM_WIN64
같은 식으로 말이죠
_________________
정말 깨끗하고 멋진 프로그램을 짜고 싶습니다.
[quote]현재 여러 플랫폼에서 컴파일되도록 코드를 만들고 있는데요.
이 질문에 답변을 단다는 것이... 삭제도 안되구 -_-;;
오늘 간만에 실수 ...
_WIN32_ 인줄 알았는데 아닌거 같네요
아시는 분좀 알려주세요
가자 해외로 ~ .. 돈 벌러.
공식적인 규약은 없지만 방법은 있습니다.. 64bit window면 ms
공식적인 규약은 없지만 방법은 있습니다.. 64bit window면 msdn을 찾아보셔야 할듯...
__WIN32__ 입니다. ( _ 가 앞 뒤로 2개씩 )
__WIN32__ 입니다. ( _ 가 앞 뒤로 2개씩 )
g++ -dM -E - < /dev/null결과#defi
g++ -dM -E - < /dev/null
결과
#define __DBL_MIN_EXP__ (-1021)
#define __FLT_MIN__ 1.17549435e-38F
#define _WIN32 1
#define _X86_ 1
#define __CHAR_BIT__ 8
#define __WCHAR_MAX__ 65535U
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
#define __FLT_EVAL_METHOD__ 2
#define __i386__ 1
#define __SIZE_TYPE__ unsigned int
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __GNUC_PATCHLEVEL__ 1
#define __FLT_RADIX__ 2
#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
#define _stdcall __attribute__((__stdcall__))
#define __SHRT_MAX__ 32767
#define __LDBL_MAX__ 1.18973149535723176502e+4932L
#define __MSVCRT__ 1
#define __LDBL_MAX_EXP__ 16384
#define __LONG_MAX__ 2147483647L
#define __SCHAR_MAX__ 127
#define __DBL_DIG__ 15
#define __USER_LABEL_PREFIX__ _
#define __STDC_HOSTED__ 1
#define __WIN32 1
#define __stdcall __attribute__((__stdcall__))
#define __LDBL_MANT_DIG__ 64
#define __FLT_EPSILON__ 1.19209290e-7F
#define __tune_i686__ 1
#define __LDBL_MIN__ 3.36210314311209350626e-4932L
#define __WCHAR_TYPE__ short unsigned int
#define __MINGW32__ 1
#define __FLT_DIG__ 6
#define __FLT_MAX_10_EXP__ 38
#define __INT_MAX__ 2147483647
#define WIN32 1
#define __FLT_MAX_EXP__ 128
#define __DECIMAL_DIG__ 21
#define __DBL_MANT_DIG__ 53
#define __WINT_TYPE__ short unsigned int
#define __GNUC__ 3
#define _cdecl __attribute__((__cdecl__))
#define __LDBL_MIN_EXP__ (-16381)
#define __LDBL_MAX_10_EXP__ 4932
#define __DBL_EPSILON__ 2.2204460492503131e-16
#define __DBL_MAX__ 1.7976931348623157e+308
#define __WINNT 1
#define __WINNT__ 1
#define __tune_pentiumpro__ 1
#define __fastcall __attribute__((__fastcall__))
#define _fastcall __attribute__((__fastcall__))
#define __USING_SJLJ_EXCEPTIONS__ 1
#define __DBL_MAX_EXP__ 1024
#define __WIN32__ 1
#define WINNT 1
#define __FLT_DENORM_MIN__ 1.40129846e-45F
#define __LONG_LONG_MAX__ 9223372036854775807LL
#define __FLT_MAX__ 3.40282347e+38F
#define __GXX_ABI_VERSION 102
#define __FLT_MIN_10_EXP__ (-37)
#define __FLT_MIN_EXP__ (-125)
#define i386 1
#define __GNUC_MINOR__ 3
#define __DBL_MAX_10_EXP__ 308
#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
#define __DBL_MIN__ 2.2250738585072014e-308
#define __PTRDIFF_TYPE__ int
#define __LDBL_MIN_10_EXP__ (-4931)
#define __REGISTER_PREFIX__
#define __cdecl __attribute__((__cdecl__))
#define __LDBL_DIG__ 18
#define __NO_INLINE__ 1
#define __i386 1
#define __FLT_MANT_DIG__ 24
#define __VERSION__ "3.3.1 (mingw special 20030804-1)"
#define __declspec(x) __attribute__((x))
Perl 만세~~~
댓글 달기