Search code examples
ccompiler-constructionpragmac-preprocessor

What is the use of pragma code section and data section?


What exactly will happen to the data segment and text segment if I use the below two lines in my c source code file?

#pragma CODE_SECTION(func1, "Sec1")
#pragma DATA_SECTION(globalvar1, "Sec2")

Solution

  • Source (contains examples): https://web.archive.org/web/20080803190119/http://hi.baidu.com/jevidyang/blog/item/6d4dc436d87e3a300b55a918.html

    Note: #pragma is compiler specific, so syntax may vary for your compiler.

    The DATA_SECTION pragma allocates space for the symbol in a section called section name. The syntax for the pragma in C could be:

    #pragma DATA_SECTION (symbol, "section name");
    

    The syntax for the pragma in C++ could be:

    #pragma DATA_SECTION ("section name");
    

    The DATA_SECTION pragma is useful if you have data objects that you want to link into an area separate from the .bss section.


    The CODE_SECTION pragma allocates space for the func in a section named section name. The CODE_SECTION pragma is useful if you have code objects that you want to link into an area separate from the .text section. The syntax of the pragma in C could be:

    #pragma CODE_SECTION (func, "section name")
    

    The syntax of the pragma in C++ could be:

    #pragma CODE_SECTION ("section name")