реклама на сайте
подробности

 
 
> Проблема с комментариями (С++).
kurtis
сообщение Jun 2 2009, 15:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Компилятор GCC для AVR. Хотя такой-же эффект наблюдается и в MinGW. Язык С++.
Столкнулся с такой вот проблемой, есть код
Код
int main()
{
    int a = 10;
    int b;

    if (a = 10) {
        b = 30;
    //\\ Почему тут нету ошибки?
    }
    else {
        b = 40;
    }
}
и есть такой вот код
Код
int main()
{
    int a = 10;
    int b;

    if (a = 10) {
        b = 30;
    // А вот тут есть ошибка? \\
    }
    else {
        b = 40;
    }
}

Вопрос, почему в первом случае отсутствует ошибка а во втором она "вдруг" появляется? И разве не все-равно что я буду писать после знака комментария ("//")?

Сам текст ошибки
Цитата
C:\temp\Trigraphs\main.cpp: In function `int main()':
C:\temp\Trigraphs\main.cpp:10: error: expected primary-expression before "else"
C:\temp\Trigraphs\main.cpp:10: error: expected `;' before "else"
C:\temp\Trigraphs\main.cpp:13: error: expected `}' at end of input
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Jun 2 2009, 16:11
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Что-то я в упор не вижу отличий первого кода от второго. Отличия только в строке комментария что-ли? cranky.gif Если да, то знак \ в конце строки комментария "приклеивает" следующую строку к ней. Соответственно закрывающая скобка } попадает в строку комментария.
А вообще у вас ошибка в условии ( (a = 10) вмеcто (a == 10) ), которая скорее всего приводит к тому, что тело main просто выкидывается оптимизатором.
Вот. Нашел в стандарте ANSI C описание причины ошибки. Двойной обратный слеш как одиночный обратный слеш воспринимается даже в комментарии.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016