을 확장 할 보장이 기능을 내가 헤더 파일은 프로그램에 포함 된이 선언이내가 직장에서 일부 코드를 통해가는 인라인
inline
FLAGS get_flags(void) {
FLAGS res;
memset(&res, 0, sizeof(res));
return res
}
을 발견했다. 이 스택에 할당 된대로 인라인되지 않은 경우 그것은 매우 나쁜 것임을 알고 있습니다. 우리는 문제의 코드에 결코 문제가 없었지만, 나는 그저 궁금했다.
이 함수가 인라인되는지 여부는 함수의 안전성과 관련이 없습니다. 값으로 res를 반환합니다. – Jon
중요합니까? memset()에 대한 호출은 확실히 인라인되지 않으므로 함수를 인라인하면 많은 비용을 절약 할 수 없습니다. – Clifford
@Clifford : 사실, gcc가 -O3 및 MSVC로 인라인합니다. – GManNickG