E D R , A S I H C RSS

pragma

pragma


Each implementation of C and C++ supports some features unique to its host machine or operating system. Some programs, for instance, need to exercise precise control over the memory areas where data is placed or to control the way certain functions receive parameters. The #pragma directives offer a way for each compiler to offer machine- and operating-system-specific features while retaining overall compatibility with the C and C++ languages. Pragmas are machine- or operating-system-specific by definition, and are usually different for every compiler.

-- MSDN

C 와 C++ 을 κ΅¬ν˜„ν•œ 각각의 μ»΄νŒŒμΌλŸ¬μ—λŠ” ν¬νŒ…λœ ν•˜λ“œμ›¨μ–΄λ‚˜ OS 에 의쑴적인 λͺ‡λͺ‡κ°€μ§€λ“€μ˜ κΈ°λŠ₯을 가지고 μžˆλ‹€. 일λ€λ‘œ λͺ‡λͺ‡μ˜ ν”„λ‘œκ·Έλž¨λ“€μ€ λ©”λͺ¨λ¦¬μ— 데이터가 μ–΄λ– ν•œ λ°©μ‹μœΌλ‘œ μžλ¦¬μž‘μ„ 것인지 에 κ΄€ν•œ λ¬Έμ œλ‚˜ ν•¨μˆ˜κ°€ 파라λΈν„°λ“€μ„ μ‘°μž‘ν•˜λŠ” 방법듀에 λŒ€ν•œ μ„Έλ°€ν•œ μ‘°μž‘μ΄ μš”κ΅¬λœλ‹€. #pragma μ§€μ‹œμ–΄λ“€μ€ C 와 C++ μ–Έμ–΄ μ•ˆμ—μ„œ μ΅œμ†Œν•œμ˜ ν˜Έν™˜μ„±μ„ μœ μ§€μ‹œν‚€λ©° κ·ΈλŸ¬ν•œ μ‹œμŠ€ν…œ 의쑴적인 λͺ…령어듀을 μ–Έμ–΄μ˜ κΈ°λŠ₯μœΌλ‘œμ„œ ν¬ν•¨μ‹œν‚€λŠ” 일을 ν•œλ‹€. Pragma μ§€μ‹œμ–΄λ“€μ€ 일반적으둜 μ»΄νŒŒμΌλŸ¬λ“€ λ§ˆλ‹€ μ„œλ‘œ λ‹€λ₯΄λ‹€.


snowflowerλŠ” Accelerated C++ 에 μžˆλŠ” mapμ˜ˆμ œλΌ Visual C++μ—μ„œ μΉ˜λ©΄μ„œ μ—„μ²­λ‚œ μ–‘μ˜ κ²½κ³ λΌ κ²½ν—˜ν–ˆλ‹€. 이것을 μ–΄λ–»κ²Œ ν•  수 μžˆμ„κΉŒ μžλ£ŒλΌ μ°Ύλ˜ 쀑 λ‹€μŒκ³Ό 같은 방법을 μ°Ύμ•˜λ‹€.
mapμ—μ„œ λ‚˜λŠ” κ²½κ³ λŠ” 번호 C4786번과 C4788번(identifierκ°€ λ„ˆλ¬΄ κΈΈμ–΄μ„œ λ‚˜νƒ€λ‚˜λŠ” 경고라고 ν•œλ‹€) 단 2개 λΏμž„μ„ μ•Œμ•˜κ³ , κ²°κ΅­ μ†ŒμŠ€μ˜ 맨 μœ—μ„에
#pragma warning(disable: 4786 4788)
ν•œμ„을 μΆ”κ°€ν•¨μœΌλ‘œ 해결을 λ΄€λ‹€.

NeoCoin 은 Debug λͺ¨λ“œμ—μ„œ, 값을 좔적할 것을 ν¬κΈ°ν•˜κ³ , Project Setting -> C/C++ tab -> Debug info -> Line Numbers Only 둜 놓고 μ“΄λ‹€.

ν•˜μ§€λ§Œ, μ΄λŸ¬ν•œ κ²½κ³ λŠ” Visual C++ 6.0 μ—μ„œλ§Œ μœ νš¨ν•œκ²ƒμ΄κ³ , VS.NET λΆ€ν„° μΆ”κ°€ μ„ΈνŒ…μ΄ ν•„μš” μ—†λ‹€. VC++ 6.0 μ—μ„œλŠ” map은 λ¬Όλ‘  STLPort λ‚˜, Boost μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•˜μ§€ μ•ŠλŠ”λ‹€. 더 이상 MS 츑의 컴파일러 기술 지원이 μ—†μœΌλ€λ‘œ, VS.NET 이상 버전을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

뿐만 μ•„λ‹ˆλΌ lib의 μΆ”κ°€λ“±μ΄λΌλ˜μ§€ 이 파일이 단 ν•œλ²ˆλ§Œ μ—΄λ¦¬κ²Œ ν•  μˆ˜λ„ μžˆλ‹€.
#pragma comment(lib, "d3dx9") // dx9.lib νŒŒμΌμ„ λ§ν¬μ‹œ ν¬ν•¨ν•œλ‹€.

#pragma once // 이 νŒŒμΌμ€ ν•œλ²ˆλ§Œ μ—΄λ¦¬κ²Œ ν•œλ‹€.

ν˜Ήμ‹œλΌλ„.. μ € #pragma warning(disable: n ... m) 을 μ¨μ„œ μ–Έμ œλ‚˜ λ¬Έμ œλΌ ν•΄κ²° ν•  수 μžˆμ„κ±°λΌκ³  μƒκ°ν•˜μ‹œλ©΄ μ•ˆλ©λ‹ˆλ‹€. μ € μœ„μ˜ μ„λͺ…에도 μ”Œμ—¬μžˆλ“이, pragma directive λŠ” μ§€κ·Ήνžˆ.. μ‹œμŠ€ν…œμ— μ˜μ‘΄μ μž…λ‹ˆλ‹€. 그러λ€λ‘œ, VC μ—μ„œλŠ” λ¨ΉνžŒλ‹€λŠ” μ € λͺ…λ Ήμ–΄κ°€ GCC μ—μ„œλŠ” μ•ˆλ μˆ˜λ„ 있고.. 뭐 κ·ΈλŸ°κ²λ‹ˆλ‹€. ν™•μ‹€ν•˜κ²Œ μ“°κ³ μ‹ΆμœΌμ‹œλ‹€λ©΄.. κ·Έ 컴파일러의 λ¬Έμ„œλΌ μ°Έμ‘°ν•˜λŠ”κ²ƒμ΄ λ„μ›€λ κ²λ‹ˆλ‹€.

ν‘œμ€μœΌλ‘œ 정해진 λͺ‡λͺ‡μ˜ pragma directive κ°€ μžˆλ‹€κ³  μ•Œκ³ μžˆλŠ”λ°.. 그것듀을 λ‚΄ν‚€λ©΄ μ •λ¦¬ν•΄μ„œ μ˜¬λ €λ³΄κ² μŠ΅λ‹ˆλ‹€.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:44
Processing time 0.0332 sec