как URL в теле функции компилируется - PullRequest
4 голосов
/ 23 декабря 2010

Я просто вставил URL в свой код и забыл его прокомментировать, но был удивлен, увидев, что MSVC ++ успешно скомпилировал его.Мой код выглядит так:

void my_function()
{
    http://www.google.co.in/
}

Как получается, что это компилируется MSVC ++?

Ответы [ 2 ]

8 голосов
/ 23 декабря 2010

На самом деле http, за которым следует двоеточие , обрабатывается как C * ++ как метка , которую можно использовать в goto выражениях (например, goto http;)Остальное (т.е. //www.google.co.in) рассматривается как однострочный комментарий.Вот почему он компилируется.

Подробнее,

 void your_function()
 {

        http://www.google.co.in/

        https://www.crazy_c++.com/

        ftp://c++_is_fun.edu

        //your code here
        int i = 10 ; //atleast one line of code is needed here to get compiled!
 }

Кстати, я не думаю, что написанный вами пример будет скомпилирован.После URL должна быть хотя бы одна строка кода, только тогда она будет откомпилирована на моем ПК.Я использую MSVC ++ 2008.

1 голос
/ 23 декабря 2010

Без кавычек // в C ++ - это комментарий. Поэтому после удаления комментариев ваш код будет выглядеть так:

void my_function()
{
    http:
}

То есть http: - это просто метка, которую можно использовать с goto.

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