Эта ошибка связана с отсутствием определения переделенной. Смотрим пример:
#include "stdafx.h" int main(int argc, char* argv[]) { for (int x=0;x<y;x++) //y не объявлена { } return 0; }
Переменная y не определена:
D:\VС\TestError\TestError.cpp(12) : error C2065: 'y' : undeclared identifier
Основа этой ошибки в том, что переменную прежде чем использовать нужно объявить. А вот почему она не объявлена, может быть много случаев. Например, перепутаны верхние - нижние индексы в названиях.
#include "stdafx.h" int main(int argc, char* argv[]) { int X; // надо бы нижнем регистром for (int x=0;x<y;x++) { } return 0; }
Отсутствие определения функции или переменной может быть связано с отсутствием заголовочного файла.
#include "stdafx.h" int main(int argc, char* argv[]) { BOOL i; return 0; }
Она просто не определена в заголовочном файле:
D:\VС\TestError\TestError.cpp(11) : error C2065: 'BOOL' : undeclared identifier
Она просто не определена в заголовочном файле. Надо включить windows.h и все станет на свое место.
Область видимости переменной может привести к появлению этой ошибки.
#include "stdafx.h" int main(int argc, char* argv[]) { for (int x=0;x<10;x++) { for (int y=0;y<10;y++) { } } y=20; return 0; }
И та же ошибка:
D:\VС\TestError\TestError.cpp(15) : error C2065: 'y' : undeclared identifier