Почему вставка URL-адресов в код C и С++ работает?
Почему выполняется компиляция следующего кода? Какой раздел языка позволяет добавлять URL-адреса в код C и С++?
int main()
{
http://www.stackoverflow.com
return 0;
}
Спасибо, Кастро.
Ответ 1
Если вы скомпилированы с предупреждениями, вы заметите:
warning: label ‘http’ defined but not used
Это должно быть достаточно показательно для проблемы.
Текст http: обрабатывается как метка.
Далее // отрицает оставшийся текст как комментарий, игнорируя его.
http://www.stackoverflow.com
Даже схемы цвета синтаксиса SO, указанные выше, показывают, что это правда, поскольку раздел после http обрабатывается как комментарий (выделено серым цветом).
Ответ 2
Это потому, что компилятор рассматривает http: как метку и // whatever как комментарий. Это совершенно законный код.
Если вы не используете goto http; где-то, это будет совершенно бесполезный код.
Ответ 3
В вашем коде http есть только метка, а //www.stackoverflow.com - комментарий.
Также обратите внимание, что
int main()
{
http://www.stackoverflow.com
}
или
int main()
{
http://www.stackoverflow.com
http://www.facebook.com
return 0;
}