似乎a=1;b=a;
无法重新排序,因为存在明显的依赖关系。
不确定a->b=1; c=a
。
答案 0 :(得分:2)
a->b = 1
表示a
是指向某个结构的指针,该结构具有名为b
的字段,因此b=a
生成编译器错误b
不存在定义,或b
被定义为指向struct的指针,因此它们完全不相关。
struct somestr
{
int b;
};
...
...
struct somestr *a;
...
...
a->b = 1; /* OK */
b = a; /* symbol "b" not found */
...
...
...
struct somestr *a, *b;
...
...
a->b = 1; /* OK */
b = a; /* OK too */
答案 1 :(得分:1)
a->b=1; c=a;
当你现在编写它时,假设a
和c
是指向相同结构类型的指针,则表示{{1}指向的结构的b
字段设置为1。
然后,让指针a
指向相同的结构。
这些操作可以明显互换,因为它们不会相互影响。无论对方是否被执行,两者都以相同的方式工作。