作业帮 > 综合 > 作业

#ifdef AFX_CORE1_SEG #prama code_seg(AFX_CORE1_SEG)

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/11 01:13:35
#ifdef AFX_CORE1_SEG #prama code_seg(AFX_CORE1_SEG)
这是在windows对WinMain.cpp中的包含文件,
#ifdef AFX_CORE1_SEG #prama code_seg(AFX_CORE1_SEG)
你可以先看下下面关于 #pragma code_seg命令的解释
#pragma code_seg能够设置程序中函数代码存放的代码段,
开发驱动程序的时候就会使用到它.格式如下:
#pragma code_seg( [ [ { push | pop}, ] [ identifier, ] ][ "segment-name" [, "segment-class" ] ])
该指令用来指定函数在.obj文件中存放的节,观察OBJ文件可以使用VC自带的dumpbin命令行程序 ,如果code_seg没有带参数的话,则函数在OBJ文件中存放在默认在.text节中.
push (可选参数) 将一个记录放到内部编译器的堆栈中,可选参数可以为一个标识符或者节名
pop(可选参数) 将一个记录从堆栈顶端弹出,该记录可以为一个标识符或者节名
identifier (可选参数) 当使用push指令时,为压入堆栈的记录指派的一个标识符,当该标识符被删除的时候和其相关的堆栈中的记录将被弹出堆栈
"segment-name" (可选参数) 表示函数存放的节名
例如:
//默认情况下,函数被存放在.text节中
void func1() { // stored in .text
}
//将函数存放在.my_data1节中
#pragma code_seg(".my_data1")
void func2() { // stored in my_data1
}
//r1为标识符,将函数放入.my_data2节中
#pragma code_seg(push, r1, ".my_data2")
void func3() { // stored in my_data2
}
int main() {}
通过上面的说明 你应该大致可以了解这句话的含义了.#ifdef AFX_CORE1_SEG 这条语句表明的意思是如果定义了这个宏 AFX_CORE1_SEG .如果定义了这个宏则执行下面的语句#prama code_seg(AFX_CORE1_SEG) 意思是将函数放置在AFX_CORE1_SEG这个段里面.