일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- CS
- Kotlin
- 백준
- c
- 프로그래밍
- tipssoft
- 문법
- Tips강좌
- Desktop
- 지식나눔강좌
- Programming
- Win32
- 티스토리
- c#
- 리뷰
- Tips프로그래밍강좌
- 함수
- Javascript
- 김성엽
- 포인터
- Windows
- Visual Studio
- 연산자
- 배열
- Direct2D
- c++
- VS ERROR
- 알고리즘
- 이지스퍼블리싱
- doit코틀린프로그래밍
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
pragma disable vs pragma suppress 본문
반응형
경고 예외 처리를 위해 코드상에 #pragma warning() 시리즈를 작성할 때가 있습니다. 괄호 안에 disable과 suppress가 들어갈 수 있는데, 두 경우는 어떤 경우에 사용되는지 알아보겠습니다.
#pragma?
컴파일러의 기능을 제어하는 지시문입니다. pragma는 컴파일러마다, 운영체제마다 정의가 다를 수 있고 그에 따라 하는 작업도 다릅니다.
#pragma warning(disable:4996)
#pragma warning(suppress:4996)
두 지시문은 같은 기능을 합니다. C4996 경고를 해제해주는 지시문으로, 해당 지시문을 사용하면 프로젝트 설정 여하에 상관 없이 SDL 대상 함수(scanf 등)를 사용할 수 있습니다.
disable
해당 옵션으로 사용하면 파일 내에 존재하는, 선택된 경고를 모두 해제합니다.
suppress
해당 옵션은 지시문을 작성한 다음에 오는 라인의 경고를 해제해줍니다.
#include <stdio.h>
int main(void) {
int value;
char data[20];
printf("Input: ");
#pragma warning(suppress: 4996)
scanf("%d", &value);
printf("Output: %d\n", value);
printf("String: ");
scanf("%s", data);
printf("String Output: %s\n", data);
return 0;
}
위와 같은 코드가 존재할 때, #pragma warning(suppress: 4996)을 작성한 다음 scanf 함수에 대해서는 C4996 경고가 노출되지 않습니다. 다른 scanf 함수에서는 그대로 C4996 경고가 노출됩니다.
suppress 옵션은 모든 경고가 아니라 일부 코드에 대해서 컴파일러 경고를 해제하도록 할 때 사용할 수 있습니다.
# index
728x90
반응형
'DEV > Tip' 카테고리의 다른 글
VS2019에서 코드 작성 및 배포시 알아두면 좋은 xml 문법 (0) | 2021.09.29 |
---|---|
VS ERROR C6385: var에서 잘못된 데이터를 읽고 있습니다. 읽기 가능한 크기는 'var*4'바이트인데 실제로는 n바이트만 읽을 수 있습니다. (0) | 2021.06.26 |
VS ERROR C6385 : 'variable'에서 잘못된 데이터를 읽고 있습니다. 읽기 가능한 크기는 'n1'바이트인데 실제 크기는 'n2'바이트만 읽을 수 있습니다. (0) | 2021.03.06 |
[goorm]Kotlin Error: *.jar에 기본 Manifest 속성이 없습니다. (0) | 2020.04.01 |
프로그램에 일상을 더하다: Intro (2) | 2020.03.17 |
Comments