C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Подробности - Compiler Error C2143 / MFC в подробностях / Visual C++

Подробности - Compiler Error C2143

Это ошибка синтаксиса. Связана она с отсутствием необходимых разделителей между элементами языка. Компилятор ожидает, что некоторые элементы языка появятся прежде или после других элементов. Если этого не происходит, то он выдаем ошибку. Будем пробовать ее получить. Пишем код:

#include "stdafx.h"
int main(int argc, char* argv[])
{
	int x;
	int y;
	if (x<y) :	// двоеточие здесь совсем не нужно
	{
	}
}

Результат работы компилятора:

D:\VС\TestError\TestError.cpp(10) : error C2143: syntax error : missing ';' before ':'

Второй наиболее частый вариант это забыть поставить ";" после объявления класса.

#include "stdafx.h"

class CMy
{
}	// забыли ";"

class CMy2
{
}

int main(int argc, char* argv[])
{
}

Опять та же ошибка.

D:\VС\TestError\TestError.cpp(12) : error C2236: unexpected 'class' 'CMy2'
D:\VС\TestError\TestError.cpp(12) : error C2143: syntax error : missing ';' before '{'

Еще один вариант с лишней скобки:

#include "stdafx.h"

int main(int argc, char* argv[])
{
}		// это лишнее
return 0;
}

Опять та же ошибка:

D:\VС\TestError\TestError.cpp(11) : warning C4508: 'main' : function should return a value; 'void' return type assumed
D:\VС\TestError\TestError.cpp(12) : error C2143: syntax error : missing ';' before 'return'

Отсутствие закрывающей скобки может привести к такой же ошибке:

#include "stdafx.h"

int main(int argc, char* argv[])
{
	for (int x=0;x<10;x++		// не хватает ")"
	{
	}
	return 0;
}

Как видите это ошибка связанна с синтаксисом. Если она у Вас появляется внимательно просмотрите код на предмет соответствия требованиям C++ (лишние знаки, забытые ;)


| |
Автор Каев Артем.
[AD]