2011-02-15 1 views
8

According to MSDN Visual C++에서 컴파일러가 인라인으로 표시되지 않은 함수를 인라인한다고 결정한 경우 인라인 확장에 대해 함수 X를 선택하면 C4711 경고가 방출 될 수 있습니다.C4711 "인라인 확장을 위해 선택된 함수"의 용도는 무엇입니까? Visual C++ 경고?

이 경고가 유용 할 수 있습니다. 내 코드를 컴파일하고이 경고를 보았다고 가정 해보십시오. 이제 뭐? 내가 왜 신경 쓸 텐데?

+0

사람들이 "내 기본 설정이 아니라"라는 답변을 게시하는 이유를 잘 모르겠습니다. 아니요, Visual Studio는 기본적으로 경고 수준 3입니다. I * 항상 * /를 '/ Wall'로 변경합니다. 나는 다른 모든 사람들이 똑같은 행동을하지 않는다고 생각하지 않았다. 이것은 훌륭한 질문이다. 내가 설명 할 수있는 유일한 설명은 약간의 미묘한 버그 인라인에 당신을 실마리시킬지도 모른다는 것이다. –

답변

11

기본적으로 켜져 있지 않습니다. 함수가 인라인 될 때 ​​어떤 이유인지 알고 싶으면이 기능을 켤 수 있습니다. 말하자면, 코드 크기가 심각한 프리미엄에 있거나 모듈 외부에서 함수로 들어가기를 기대하거나 어셈블리가 특정 방식으로 보이기를 원하면 관련성이 있습니다. 또한 코드 생성 버그를 추적하는 데 도움이 될 수 있습니다.

순수한 정보입니다.

+2

+1, 멋진 정보 응답! ;) – sjr

+0

'/ Werror' (또는 MS 스위치가 기억 나지 않는 것)가 켜져있을 때 순전히 정보 메시지가 컴파일을 멈추지 않기를 바랄 수 있습니다 :/ –

+1

@Matthieu : 원한다면 . 대부분의 사람들은 원치 않으므로 기본적으로 해제되어 있습니다. 그러나 편집을 중지하는 것이 중요하다는 경고가 충분하다고 생각되면 경고를 해제 할 수 있습니다. –