검색결과 리스트
#Pragma에 해당되는 글 4건
- 2011.02.25 #pragma message
- 2008.02.20 #pragma comment
- 2008.02.20 #pragma once
- 2008.02.20 #pragma pack
글
참 재미있는 기능입니다.
이걸로 TODO를 만들면 VC++에서 점프가 가능합니다.
위와 같이 Output 창에서 해당 라인을 더블클릭하면 실제 소스로 이동합니다.
사용할때는
이렇게 사용하시면 됩니다.
이걸로 TODO를 만들면 VC++에서 점프가 가능합니다.
위와 같이 Output 창에서 해당 라인을 더블클릭하면 실제 소스로 이동합니다.
// with line number
#define STRING2(x) #x
#define STRING(x) STRING2(x)
#define TODO(x) message(__FILE__"("STRING(__LINE__)") : ▶"x"◀")
사용할때는
// Used
#pragma TODO("테스트")
이렇게 사용하시면 됩니다.
'C/C++ > VC++ / MFC' 카테고리의 다른 글
[MFC] CListCtrl 현재 행 선택하기 (0) | 2011.03.20 |
---|---|
COM Automation 에서 옵션인자 설정 방법 (0) | 2011.03.03 |
Predefines Macros (0) | 2011.02.16 |
[링크] 일정 시간이 흐른후 메세지 박스 종료하기 (0) | 2011.02.15 |
[MFC] Ansi -> Unicode 형변환 (0) | 2011.02.08 |
트랙백
댓글
글
주로 링크를 걸때 많이 사용합니다.
형식은
#pragma comment("comment-type" [,, commentstring])
이고 comment-type에는 compiler, exestr, lib. linker, user 등이 올 수 있습니다.
Visual Studio 2005 에서는 '프로젝트 속성--> 링커 --> 입력 --> 추가 종속성' 에서
설정 할 수 있지만 다른 코드와 호완을 생각한다면 #pragma comment을 사용하는게
좋다고 생각합니다.
'C/C++ > VC++ / MFC' 카테고리의 다른 글
[Visual Studio 2005] warning C4996: 'strcpy'이(가) deprecated로 선언되었습니다. (0) | 2008.02.20 |
---|---|
오버로딩과 오버라이딩의 차이 (0) | 2008.02.20 |
#pragma once (0) | 2008.02.20 |
#pragma pack (0) | 2008.02.20 |
CString을 char *(을)로 변환할수 없습니다. (0) | 2008.02.20 |
트랙백
댓글
글
A.h라는 헤더 파일이 있습니다.
이 파일 제일 상단에 '#pragma once'라고 표기해주면
컴파일이 한번만 됩니다.
다른 방법으로는
해도 됩니다.
그렇지만은 한번에 하는 #pragma once가 낫겠지요 ^^
ps. #ifndef __SAMPLE__H__는 '__SAMPLE__H__'가 정의되지 않았다면 실행하라는 말입니다.
이 파일 제일 상단에 '#pragma once'라고 표기해주면
컴파일이 한번만 됩니다.
다른 방법으로는
#ifndef __SAMPLE__H__
# define __SAMPLE__H__
// 한번만 컴파일 할 코드 내용
#endif// #ifndef __SAMPLE__H__
해도 됩니다.
그렇지만은 한번에 하는 #pragma once가 낫겠지요 ^^
ps. #ifndef __SAMPLE__H__는 '__SAMPLE__H__'가 정의되지 않았다면 실행하라는 말입니다.
'C/C++ > VC++ / MFC' 카테고리의 다른 글
[Visual Studio 2005] warning C4996: 'strcpy'이(가) deprecated로 선언되었습니다. (0) | 2008.02.20 |
---|---|
오버로딩과 오버라이딩의 차이 (0) | 2008.02.20 |
#pragma comment (0) | 2008.02.20 |
#pragma pack (0) | 2008.02.20 |
CString을 char *(을)로 변환할수 없습니다. (0) | 2008.02.20 |
트랙백
댓글
글
32bit 운영체제 일때
1+2+4 = 7 총 7Byte라고 생각하는데
실제 sizeof(test) 해보면 12Byte로 나옵니다.
이유는 운영체제가 32bit일때 4Byte에 최적화 되어 있어서
structure가 4Byte가 아니면 4Byte로 맞추는 경향이 있습니다.
이런걸 padding이라고 하는데
이럴대는 padding을 1Byte로 맞추면 됩니다.
방법은
이렇게 하고 다시 sizeof로 확인해 보면은 제대로 7Byte로 나타납니다.
ps. #pragma pack 컴파일러 명령은 구조체 단위로 멤버 정렬 방식을 설정할 때 사용합니다.
struct A
{
BYTE a; // 1Byte
WORD b; // 2Byte
DWORD c; // 4Byte
};
A test;
1+2+4 = 7 총 7Byte라고 생각하는데
실제 sizeof(test) 해보면 12Byte로 나옵니다.
이유는 운영체제가 32bit일때 4Byte에 최적화 되어 있어서
structure가 4Byte가 아니면 4Byte로 맞추는 경향이 있습니다.
이런걸 padding이라고 하는데
이럴대는 padding을 1Byte로 맞추면 됩니다.
방법은
#pragma pack(push, 1)
struct A
{
BYTE a; // 1Byte
WORD b; // 2Byte
DWORD c; // 4Byte
};
#pragram pack(pop)
이렇게 하고 다시 sizeof로 확인해 보면은 제대로 7Byte로 나타납니다.
ps. #pragma pack 컴파일러 명령은 구조체 단위로 멤버 정렬 방식을 설정할 때 사용합니다.
'C/C++ > VC++ / MFC' 카테고리의 다른 글
[Visual Studio 2005] warning C4996: 'strcpy'이(가) deprecated로 선언되었습니다. (0) | 2008.02.20 |
---|---|
오버로딩과 오버라이딩의 차이 (0) | 2008.02.20 |
#pragma comment (0) | 2008.02.20 |
#pragma once (0) | 2008.02.20 |
CString을 char *(을)로 변환할수 없습니다. (0) | 2008.02.20 |
RECENT COMMENT