PDF version - ARM Information Center
PDF version - ARM Information Center
PDF version - ARM Information Center
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
C, C++ 및 어셈블리 언어 조합참고extern "C"로 선언된 함수는 오버로드할 수 없습니다.• 어셈블리 언어 모듈은 응용 프로그램에서 사용하는 메모리 모듈에 적절한AAPCS 표준을 준수해야 합니다.C 및 어셈블리 언어에서 C++ 함수를 호출하는 데는 다음 규칙이 적용됩니다.• 전역 (비 구성원) C++ 함수를 호출하려면 해당 함수를 extern "C"로 선언하여 함수에 C 링키지를 지정합니다.• 구성원 함수 (정적 및 비정적 함수 모두 포함) 에는 항상 잘린 이름이 있습니다. 임베디드 어셈블러의 __cpp 키워드를 사용하면 변환된 이름을 직접 찾을필요가 없습니다.• C++ 컴파일러에서 함수의 라인 외부 복사본을 생성할 수 없는 경우에는 C에서 C++ 인라인 함수를 호출할 수 없습니다. 예를 들어 함수의 주소를 사용하면 라인 외부 복사본이 생성됩니다.• 비정적 구성원 함수는 int 계열이 아닌 구조체를 반환할 경우 첫 번째 인수(R0) 나 두 번째 인수 (R1) 로 암시적 this 매개변수를 받습니다. 정적 구성원함수는 암시적 this 매개변수를 받지 않습니다.4.4.2 C++ 관련 정보다음 내용은 C++에만 해당됩니다.C++ 호출 규칙<strong>ARM</strong> C++에서는 다음 사항을 제외하고는 <strong>ARM</strong> C와 동일한 호출 규칙을 사용합니다.• 비정적 구성원 함수는 int 계열이 아닌 struct를 반환할 경우 첫 번째 인수나두 번째 인수로 암시적 this 매개변수를 사용하여 호출됩니다. 이는 이후 구현에서 변경될 수 있습니다.4-8 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0203IKNon-ConfidentialUnrestricted Access