Форум программистов, компьютерный форум CyberForum.ru

Функция main() и ситаксические ошибки - C++

Восстановить пароль Регистрация
 
cmath
Модератор
 Аватар для cmath
2415 / 1634 / 132
Регистрация: 11.08.2012
Сообщений: 3,252
Завершенные тесты: 5
30.08.2012, 10:43     Функция main() и ситаксические ошибки #1
Доброго времени суток. Написал вот такую бредятину штуку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <windows.h>
#include <cstring>
 
int main();
 
int a = 3;
if(a == 0)
{
 
int main()
{
    return 0;
}
}
Компиллятор ругается на ситаксическую ошибку (мол где-то я в условном операторе де забыл скобочку и ";")
При этом ему совершенно пофиг, что main() выполняется в теле условного оператора, да еще и никогда не будет выполнена из-за условия a==0. Это баг такой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2012, 10:43     Функция main() и ситаксические ошибки
Посмотрите здесь:

C++ Функция main
C++ функция main()
Функция main C++
C++ Функция main () {}
Функция main с аргументами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
@r!er
 Аватар для @r!er
2 / 2 / 1
Регистрация: 15.09.2011
Сообщений: 25
30.08.2012, 11:53     Функция main() и ситаксические ошибки #2
Не может быть 2-х фунций main(). И прототип функции main() не нужен
C++
1
2
3
4
5
6
7
8
#include <windows.h>
#include <cstring>
int main()
{
 int a=3;
 if(!a)
 return 0;
}
Veyron
 Аватар для Veyron
104 / 104 / 4
Регистрация: 02.06.2009
Сообщений: 579
30.08.2012, 11:55     Функция main() и ситаксические ошибки #3
Ага, баг.
У меня компилятор ругается на то, что if стоит там, где ему не нужно стоять. Дальнейшие ошибки не определяются, потому что сначала следует исправить то, что уже есть - смысла делать синтаксический анализ у программы нет, так как жопа уже тут.
ЗЫ: GCC 4.7
Blutonium
4 / 4 / 0
Регистрация: 29.05.2012
Сообщений: 275
30.08.2012, 11:55     Функция main() и ситаксические ошибки #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
int a=3;
if(a==0)
{
int main();
system("PAUSE");
return EXIT_SUCCESS;
}
}
Компилировал через программку devcpp
cmath
Модератор
 Аватар для cmath
2415 / 1634 / 132
Регистрация: 11.08.2012
Сообщений: 3,252
Завершенные тесты: 5
30.08.2012, 12:18  [ТС]     Функция main() и ситаксические ошибки #5
Цитата Сообщение от @r!er Посмотреть сообщение
Не может быть 2-х фунций main(). И прототип функции main() не нужен
Это я в сообщении случайно поставил когда копи-пастил не обращайте внимания

Добавлено через 4 минуты
Цитата Сообщение от Veyron Посмотреть сообщение
ЗЫ: GCC 4.7
А у меня VS++ 2008 и ругается он (как пример) в
C++
1
2
3
4
for (int i = 0; i<b;i++)
{
if(a!=b)
}
не только на то, что "b" (а заодно и "a") не объявлены, но и на непонятку с if

Добавлено через 4 минуты
Кст он у меня ругается не на расположение if, а на отсутствие скобки (которая кст есть) и отсутствие ";"

Не по теме:

у меня случай был, когда из-за ошибки с макросом компиллятор ругался на синтаксические ошибки, которых не было, вместо того, чтобы намекнуть на необъявленный идентификатор.



Добавлено через 3 минуты
Синтаксическая ошибка собственно этот случай
Yandex
Объявления
30.08.2012, 12:18     Функция main() и ситаксические ошибки
Ответ Создать тему
Опции темы

Текущее время: 21:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru