考慮以下c
代碼:解釋C的結構
typedef struct ELE *tree_ptr
struct ELE {
long val;
tree_ptr left;
tree_ptr right;
};
相信ELE
封裝二叉樹的一個節點。每個節點都有一些32位值(val),一個pointer
指向左側節點,而pointer
指向右側節點。
有人可以確認我的解釋是正確的嗎?
另外,是ELE
只是一個任意的變量名或一些約定用於命名struct
?
編輯:
如果什麼有生成下列3行的彙編代碼C程序:
movq %rbx, -24(%rsp)
movq %rbp, -16(%rsp)
movq %r12, -8(%rsp)
這些是3行騰出棧上的結構的3個元素?
編輯在我看來似乎是一個完全不同的問題,與原文無關。如果你問它作爲一個不同的問題,你會得到更好的迴應,並有更多的上下文。該彙編代碼可以由一百個不同的C源代碼生成:-)這些指令都沒有爲堆棧分配任何空間,因爲它們不會更改堆棧指針'rsp'。 – paxdiablo 2012-02-12 05:32:13