prosource

함수에서 "항상 __sub__((항상_sub)"은 무엇을 의미합니까?

probook 2023. 7. 22. 10:12
반응형

함수에서 "항상 __sub__((항상_sub)"은 무엇을 의미합니까?

다음 함수 정의를 찾았습니다.

static inline __attribute__((always_inline)) int fn(const char *s)
{
  return (!s || (*s == '\0'));
}

그리고 나는 그 의미를 알고 싶습니다.inline __attribute__((always_inline))?

자주 언급되는 것은gcc에 대한 문서.always_inline불완전합니다.

always_inline속성 makesgcc컴파일러:

  • 무시-fno-inline(설명서에는 다음과 같이 나와 있습니다.)
  • 인라인 한계를 무시하고 상관없이 함수에 인라인을 적용합니다.또한 다음과 같은 기능을 인라인화합니다.alloca호출, 그것.inline키워드는 절대 그렇지 않습니다.
  • 다음과 같이 표시된 경우 외부 연결이 있는 함수의 외부 정의를 생성하지 않습니다.always_inline.

위 정보의 출처는 gcc 소스 코드이므로 경고 없이 변경될 수 있습니다.

흥미로운 벤치마크는 성능입니다.

이는 최적화가 비활성화된 경우에도 컴파일러가 함수를 인라인화하도록 강제합니다.자세한 내용은 이 설명서를 참조하십시오.

언급URL : https://stackoverflow.com/questions/22767523/what-inline-attribute-always-inline-means-in-the-function

반응형