Конкатенация константного массива зависит от реализации? - PullRequest
0 голосов
/ 16 июня 2019

Я хочу знать, есть ли в спецификации ISO, что конкатенация константного массива зависит от реализации или нет? Если это зависит от реализации, не могли бы вы сказать, какой компилятор не объединяет?

#include <stdio.h>

int main(void) {

    char *a = "concatenate"
              "this array";
    puts(a);
    return 0;
}

1 Ответ

4 голосов
/ 16 июня 2019

Это стандартная функция, но она не имеет ничего общего с постоянными массивами.Он работает только для строковых литералов.

Стандарт C определяет ряд «фаз перевода».Этап 6:

Литеральные токены смежных строк объединяются.

См., Например, 5.1.1.2 Этапы перевода в этот проект стандарта .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...