mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-05-30 22:27:41 +02:00
Refer to Godbolt (#1011)
* Refer to Godbolt * Apply suggestions from code review --------- Co-authored-by: Martin Geisler <martin@geisler.net>
This commit is contained in:
parent
7bd1bcc99f
commit
bd4839e394
@ -25,7 +25,7 @@ fn main() {
|
|||||||
<details>
|
<details>
|
||||||
|
|
||||||
Notes on stack returns:
|
Notes on stack returns:
|
||||||
* Demonstrate that the return from `add` is cheap because the compiler can eliminate the copy operation. Change the above code to print stack addresses and run it on the [Playground]. In the "DEBUG" optimization level, the addresses should change, while they stay the same when changing to the "RELEASE" setting:
|
* Demonstrate that the return from `add` is cheap because the compiler can eliminate the copy operation. Change the above code to print stack addresses and run it on the [Playground] or look at the assembly in [Godbold](https://rust.godbolt.org/). In the "DEBUG" optimization level, the addresses should change, while they stay the same when changing to the "RELEASE" setting:
|
||||||
|
|
||||||
```rust,editable
|
```rust,editable
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
@ -37,7 +37,7 @@ Notes on stack returns:
|
|||||||
p
|
p
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
pub fn main() {
|
||||||
let p1 = Point(3, 4);
|
let p1 = Point(3, 4);
|
||||||
let p2 = Point(10, 20);
|
let p2 = Point(10, 20);
|
||||||
let p3 = add(&p1, &p2);
|
let p3 = add(&p1, &p2);
|
||||||
@ -50,4 +50,4 @@ Notes on stack returns:
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
[Playground]: https://play.rust-lang.org/
|
[Playground]: https://play.rust-lang.org/
|
Loading…
x
Reference in New Issue
Block a user