How can a variable be used when its definition is bypassed?

后端 未结 8 1651
借酒劲吻你
借酒劲吻你 2020-12-09 02:11

In my mind, always, definition means storage allocation.

In the following code, int i allocates a 4-byte (typically) storage on program stack and bind

8条回答
  •  攒了一身酷
    2020-12-09 02:33

    Long story short; goto will result is a runtime jump, variable definition/declaration will result in storage allocation, compile time.

    The compiler will see and decide on how much storage to allocate for an int, it will also make so that this allocated storage will be set to 3 when "hitting" i = 3;.

    That memory location will be there even if there is a goto at the start of your function, before the declaration/definition, just as in your example.


    Very silly simile

    If I place a log on the ground and my friend runs (with his eyes closed) and jumps over it, the log will still be there - even if he hasn't seen or felt it.

    It's realistic to say that he could turn around (at a later time) and set it on fire, if he wanted to. His jump doesn't make the log magically disappear.

提交回复
热议问题