Может ли кто-нибудь объяснить, в чем разница между двумя фрагментами кода ниже? Они определенно скомпилируются для разных ассемблерных кодов, но я пытаюсь понять, как код может действовать по-другому. Я понимаю, что строковые литералы выбрасываются в постоянное запоминающее устройство и фактически статичны, но как это отличается от явного статичного ниже?
struct Obj1
{
void Foo()
{
const char* str( "hello" );
}
};
и
struct Obj2
{
void Foo()
{
static const char* str( "hello" );
}
};