考虑以下源代码示例:
struct foo; struct bar; #pragma alias (struct foo, struct bar) struct foo { int f1; int f2; } *fp; struct bar { short b1; short b2; int b3; } *bp;
此示例中的 pragma 告知编译器,允许 foo 和 bar 互为别名。编译器作出关于别名信息的以下假定:
fp->f1 可将 bp->b1、bp->b2 和 bp->b3 作为别名
fp->f2 可将 bp->b1、bp->b2 和 bp->b3 作为别名