#define 에 대한 질문이요
조회수 542회
보안 오류 때문에
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
이런 식으로 코드 첫 부분에 쓰잖아요. 그런데
#include <iostream>
#include <cstring>
#define _CRT_SECURE_NO_WARNINGS
이렇게 하면 안되더라구요 어짜피 전처리에서 실행되는거라서 저거 끼리에 순서는 상관 없는거 아닌가요? 사실 잘 모르겠습니다.
1 답변
-
전처리는 위에서 아래로 처리됩니다.
동시라는 한번에 뙇 하고 되는게 아니라 한줄 씩 한줄씩 순차적으로 진행됩니다.
따라서
#define _CRT_SECURE_NO_WARNINGS
이 가장 위에 있으면iostream
과cstring
이 추가 될 때 이미_CRT_SECURE_NO_WARNINGS
가 정의 된 상태가 됩니다.#define _CRT_SECURE_NO_WARNINGS
가 마지막에 있으면iostream
과cstring
추가될 때_CRT_SECURE_NO_WARNINGS
는 정의되지 않은 상태가됩니다.두 동작은 의미상 큰 차이가 발생할 수 있습니다.
그렇기에 저런 전처리 매크로는 일반적으로 프로젝트 속성에서 정의합니다.
댓글 입력