生存期的问题
main(){
void max(int x,int y); /* 这行一定要加上,函数说明 */
int a,b;
printf(“input two numbers:”);
scanf(“%d%d”,&a,&b);
max(a,b);
}
void max(int x,int y) /* 不需要返回值,定义为空类型void */
{
int z;
z=x>y?x:y;
}
请问:是不是当执行到int z时就开始了z的生存期
x,y的生存期是从哪一行开始的?
搜索更多相关的解决方案:
生存期
----------------解决方案--------------------------------------------------------
void max(int x,int y) /* 不需要返回值,定义为空类型void */
{
int z;
z=x>y?x:y;
}
x,y,z 在整个max函数体可见,{ }之间
----------------解决方案--------------------------------------------------------
_max PROC FAR
PUSH BP
MOV BP,SP
SUB SP,2
; ?debug L 12
MOV AX,WORD PTR [BP+6]
CMP AX,WORD PTR [BP+8]
JLE @4
JMP SHORT @3
@4:
MOV AX,WORD PTR [BP+8]
@3:
MOV WORD PTR [BP-2],AX
@2:
; ?debug L 13
MOV SP,BP
POP BP
RET
_max ENDP
----------------解决方案--------------------------------------------------------