Hi,
In your first example you do not "create" new space for the struct. So when storing a value in .thisvar, .thatvar you would overwrite the previous value stored there.
In your second example you make space on the stack to store the values of .thisvar, .thatvar. Next time you run the code you would make new space on the stack to add more .vars.
In other words the first example is like having one "global struct". The second example is like using stack dynamic allocation, to create different structs.
EDIT: As for which one is slower, it is obviously the second example. It has more instructions and the memory management is more complex.
EDIT2: I should probably also point out that although the second is slower, it has nothing to do with the fact, that you are using the stack. Your query seems confused by the age old STACK vs. HEAP debate, which is prevalent in the programming community. Non of the examples uses "the heap" to do dynamic allocation.