2012-08-16 4 views
9

C에서 "#pragma section <XYZ>"을 어떻게 사용합니까?C에서 "#pragma section <XYZ>"을 어떻게 사용합니까?

나는 다음과 같은 종류가 사용 된 경우 C 코드 파일에 걸쳐 온 -

#define XYZ "ITEM 26.G03" 

#pragma section <XYZ> 

XYZ는 여기서 #define XYZ "ITEM 26.G03"

내가 "#pragma section"

+0

http://stackoverflow.com/questions/9716637/what-is-the-use-of-pragma-code-section-and-data-section – codejammer

+0

도움이 될 경우 답변을 수락 할 수 있습니다. 또한 미래 방문자는 그 혜택을 누릴 수 있습니다. – Jaguar

답변

4

제의 사용 생성에 대한 몇 가지 explaination 필요 .obj 파일의 섹션.
자세한 내용은 MSDN을 참조하십시오.

코드 및 데이터는 개체 파일의 섹션에서 생성되고 링커에서 실행 파일로 결합되며 궁극적으로 특정 위치의 대상 메모리에 위치합니다. 기본 섹션은 사전 정의되고 특정 속성을 갖습니다. 섹션 pragmas은 기본 특성을 변경하고 새 섹션을 정의하며 코드 및 변수를 특정 섹션에 할당하고 링커 명령 파일과 함께 해당 위치를 제어하는 ​​데 사용할 수 있습니다.

#pragma section은 섹션 클래스 및 선택적으로 클래스의 하나 또는 두 섹션을 정의합니다. 섹션 클래스는 클래스의 인스턴스에 배치 된 변수 및 코드의 주소 지정 및 액세스 가능성을 제어합니다.

7

#pragma 지시문은 구현 관련 지시어로 컴파일러에 추가 정보를 제공하는 표준 방법입니다. 프리 프로세서가 지정된 "이름"을 인식

#pragma name 

경우, 그것은 그들이 서 어떤 작업을 수행하거나, 컴파일러에 정보를 전달합니다 :이 지시어는 다음과 같은 형태를 가지고있다. "이름"이 C 구현 에 의해 지원되지 않는다면, 그것은으로 무시됩니다.

예를 들어 gcc 컴파일러here으로 나열된 pragma 목록을 허용합니다. #pragma section를 들어

GCC의 문서는 말했다 :

섹션 ("섹션 이름") 일반적으로는 컴파일러가 텍스트 섹션에서 생성하는 코드를 배치합니다. 그러나 때로는 추가 섹션이 필요하거나 특정 섹션을 특수 섹션에 표시해야 할 수도 있습니다. section 속성은 특정 섹션에 함수 이 존재 함을 지정합니다. 예를 들어, 선언 :

 extern void foobar (void) __attribute__ ((section ("bar"))); 

바 섹션에서 기능 foobar을 넣습니다.

일부 파일 형식은 임의 섹션을 지원하지 않으므로 섹션 속성은 모든 플랫폼에서 사용할 수 없습니다. 모듈의 전체 내용을 특정 섹션에 매핑해야하는 경우 링커의 기능을 대신 사용해보십시오.

기타 해당 내용은 here입니다.