"a->b=1;c=a"可以重新排序吗?

标签 c memory

看来a=1;b=a;无法重新排序,因为存在明显的依赖性。

不确定a->b=1; c=a.

最佳答案

a->b = 1 表示 a 是指向某个结构的指针,该结构具有名为 b 的字段,因此 b=a 会生成有关 b 未定义的编译器错误,或者 b 也被定义为指向结构体的指针,因此它们完全不相关。

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 */

关于 "a->b=1;c=a"可以重新排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20853934/

相关文章:

c - 在 for 循环中将值添加到定义大小的数组中

c - 要求存储字符串,并存储在带打印的链表中,scanf

c++ - C++中为一个用户定义的类分配多少内存

ios - 使用 NSURLConnection 和 dispatch_async 时的内存永远不会被释放

java - 使用 null 而不是默认值可以获得性能提升?

C++11,内存泄漏

c - 在 visual studio 中构建程序

c - Linux 挂起什么样的错误?

c - 用 C 制作一个小的 mach-o 可执行文件

C#:在另一个进程的内存中搜索一个 byte[] 数组