Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

Почему пробел ставят “ ”, а не ' '?

Есть ли рациональная причина использовать двойные, а не одинарные кавычки для вывода единственного символа в С/C++? Например, почему пробел ставят " ", а не ' '?


Ответ

затем, что когда ты пишешь код в котором пробелы руками программиста вставляются (это как правило дебаг/хардкод), то тебе в итоге придется менять одинарные кавычки на двойные, если ты захочешь вместо внутрь ' ' что-нибудь добавить,
warning от gcc:
multi-character character constant [-Wmultichar] std::cout << "abc " << 'h ' << "abc";
этот ворнинг мне нафиг не нужен, и выбирать между " и ' во время дебага программы мне тоже не нужно. А в продакшен-версии программ никакого дебаг/захардкоженного вывода не нужно тем более. кроме того, "." создает литерал .\0, а '.' - char '.', а если мешать-туда сюда массивы символов с \0 и без него, ты напросишься на проблемы с безопасностью и стабильностью кода.

Комментариев нет:

Отправить комментарий