Как компилятор (MS Visual С++ 2010) объединяет идентичные строковые литералы в разных исходных файлах cpp? Например, если у меня есть строковый литерал "hello world\n" в src1.cpp и src2.cpp соответственно. Скомпилированный exe файл будет иметь только 1 "hello world" строковый литерал, вероятно, в секции constant/readonly. Эта задача выполняется компоновщиком?
Я надеюсь, что я получу несколько модулей, написанных на сборке, которые будут использоваться модулями С++. И эти сборные модули содержат много длинных строковых литералов. Я знаю, что строковые литералы идентичны некоторым другим строковым литералам в источнике С++. Если я свяжу свою сборку с кодом obj с компилятором, сгенерированным кодом obj, будут ли эти строковые литералы объединены компоновщиком для удаления избыточных строк, как в случае, когда все модули находятся на С++?