Почему вставка 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;
}
не будет компилироваться.