MS>Вовсе не факт, что компилятор совместит две одинаковые строковые литеры.
MS>Зависит от его возможностей и ключей.
даже если не совместит (если насильно выключить strings pooling) можно будет нарваться на другую совсем неочевидную ситуевину:
void foo()
{
char *s = "aaa";
printf("s=%s\n", s)
s[2] = b;
printf("s=%s\n", s)
}
...
foo();
foo();
Догадайтесь что получим в stdout выхлопе, даже если компилятор не сделает strings pooling и не разместит их в RO памяти.