小编Sri*_*ali的帖子

Clang:AST(抽象语法树)是什么样的?

嗨,我是编译器开发的新手,我想知道AST是怎样的.我有一小段代码,我使用Clang生成AST.我没有得到太多的信息.从它的外观来看,语法树与源完全相同,除了一个结构添加到我测试的几乎任何样本中.

资源:

class A {
public:
  int *a, *b, *c;
  int i;
  void sum() {
    a = new int[5];
    b = new int[5];
    c = new int[5];
    for (i = 0; i < 5; i++) {
      a[i] = i;
      b[i] = i;
    }
    for (i = 0; i < 5; i++) {
      c[i] = a[i] + b[i];
    }
    delete[] a;   delete[] b;   delete[] c;
  }
};

class B : public A {
};

int main() {
  B bclass; 
  bclass.sum();
  return …
Run Code Online (Sandbox Code Playgroud)

c++ clang abstract-syntax-tree

10
推荐指数
2
解决办法
9813
查看次数

增量分配

我已经使用C++多年了,但只是意识到增量赋值的一些可疑之处.

我有这个片段

  a = 4; 
  b = 2;
  c = 0;
  c = c + a > b; printf("a: %d\tb: %d\tc: %d\n",a,b,c);
  c = c + a > b; printf("a: %d\tb: %d\tc: %d\n",a,b,c);
  c +=    a < b; printf("a: %d\tb: %d\tc: %d\n",a,b,c);
  c +=    a > b; printf("a: %d\tb: %d\tc: %d\n",a,b,c);
  c +=    a > b; printf("a: %d\tb: %d\tc: %d\n",a,b,c);
Run Code Online (Sandbox Code Playgroud)

结果是

a: 4    b: 2    c: 1
a: 4    b: 2    c: 1
a: 4    b: 2    c: 1
a: …
Run Code Online (Sandbox Code Playgroud)

c variable-assignment

1
推荐指数
1
解决办法
159
查看次数