64,681
社区成员
发帖
与我相关
我的任务
分享
#include <cstdio>
#define M 3// 宏常量
int main()
{
const int N=100;// 此时并未将N放入内存中
NULL;
int a=N;// 此时为N分配内存,以后不再分配
NULL;
int b=M;// 预编译期间进行宏替换,分配内存
NULL;
int c=N;// 没有内存分配
NULL;
int d=M;// 再进行宏替换,又一次分配内存
return 0;
}
#include <cstdio>
#define M 3// 宏常量
int main()
{
0042D600 push ebp
0042D601 mov ebp,esp
0042D603 sub esp,0FCh
0042D609 push ebx
0042D60A push esi
0042D60B push edi
0042D60C lea edi,[ebp-0FCh]
0042D612 mov ecx,3Fh
0042D617 mov eax,0CCCCCCCCh
0042D61C rep stos dword ptr es:[edi]
const int N=100;// 此时并未将N放入内存中
0042D61E mov dword ptr [N],64h
NULL;
int a=N;// 此时为N分配内存,以后不再分配
0042D625 mov dword ptr [a],64h
NULL;
int b=M;// 预编译期间进行宏替换,分配内存
0042D62C mov dword ptr [b],3
NULL;
int c=N;// 没有内存分配
0042D633 mov dword ptr [c],64h
NULL;
int d=M;// 再进行宏替换,又一次分配内存
0042D63A mov dword ptr [d],3
return 0;
0042D641 xor eax,eax
}
0042D643 pop edi
0042D644 pop esi
0042D645 pop ebx
0042D646 mov esp,ebp
0042D648 pop ebp
0042D649 ret
#include <cstdio>
#define M 3// 宏常量
const int N=100;// 此时并未将N放入内存中
int g_val=1;
int main()
{
//const int N=100;// 此时并未将N放入内存中
int a=N;// 此时为N分配内存,以后不再分配
int b=M;// 预编译期间进行宏替换,分配内存
int c=N;// 没有内存分配
int d=M;// 再进行宏替换,又一次分配内存
return 0;
}