首页 > 试题广场 >

你负责维护一个大型的C程序,遇到下面的代码: typede

[问答题]

你负责维护一个大型的C程序,遇到下面的代码:

typedef struct{
    int first;
    a_struct a[CNT];
    int last;
}b_struct;

void test(long i, b_struct *bp)
{
   int n = bp->first+bp->last;
    a_struct *ap = &bp->a[i];
     ap->x[ap->idx] = n;
}
编译时常数CNT和结构a_structt的声明是在一个你没有访问权限的文件中。幸好,你有代码的‘.o’版本,可以用OBJDUMP程序来反汇编这些文件,得到下面的反汇编代码:


运用你的逆向工程技术,推断出下列内容:

A. CNT的值。

B. 结构a_struct的完整声明。假设这个结构中只有字段idx和x,并且这两个字段保存的都是有符号值。



这道题你会答吗?花几分钟告诉大家答案吧!