假设给你个任务,检查一下C编译器为结构和联合的访问产生正确的代码。你写了下面的结构声明:
typedef union {
struct {
long u;
short v;
char w;
} tl;
struct {
int a [2];
char *p;
} t2;
} u.type; 你写了一组具有下面这种形式的函数:
void get (u_type *up,type *dest) {
*dest =expr;
} 这组函数有不一样的访问表达式expr,而且根据expr的类型来设置目的数据类型^扣。 然后再检查编译这些函数时产生的代码,看看它们是否与你预期的一样。
假设在这些函数中,up和dest分别被加载到寄存器%rdi *%rsi中。填写下表中的数据类型^批,并用1〜3条指令序列来计算表达式,并将结果存储到dest中。
