powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS2010 не понимает такую конструкцию?
17 сообщений из 17, страница 1 из 1
VS2010 не понимает такую конструкцию?
    #39743254
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2017 компилирует, а 2010 пишет ошибку типа
error C2143: syntax error : missing ';' before 'type'

Код: plaintext
1.
2.
3.
4.
for(int i=1; i<=5; i++)
{
///
}



2010 реально не понимает такое?
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743261
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понимает. for() всегда так писался. Скорее всего ошибка где-то рядом. Ищи пропущенную ;
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743271
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно в коде есть что-то из С++11, это 2010 точно не поймет.
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743282
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая функция, проходит в 2017 и не проходит с ошибкой в 2010

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 static int TryToParseInt(const char *str, int offset, int size)
 {
	int val2=0;
	char tmp[64] = { 0 };
	
	for (int Ix = 0; Ix < size; ++Ix) //<----------error
	{
	    tmp[Ix] = str[offset + Ix];
	}
	val2 = atoi(tmp);
	return val2;
 }
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743289
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинТакая функция, проходит в 2017 и не проходит с ошибкой в 2010

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 static int TryToParseInt(const char *str, int offset, int size)
 {
	int val2=0;
	char tmp[64] = { 0 };
	
	for (int Ix = 0; Ix < size; ++Ix) //<----------error
	{
	    tmp[Ix] = str[offset + Ix];
	}
	val2 = atoi(tmp);
	return val2;
 }


2010 нет, попробовал в VC2008 - компилируется.
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743298
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TРолг ХупинТакая функция, проходит в 2017 и не проходит с ошибкой в 2010

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 static int TryToParseInt(const char *str, int offset, int size)
 {
	int val2=0;
	char tmp[64] = { 0 };
	
	for (int Ix = 0; Ix < size; ++Ix) //<----------error
	{
	    tmp[Ix] = str[offset + Ix];
	}
	val2 = atoi(tmp);
	return val2;
 }


2010 нет, попробовал в VC2008 - компилируется.

В том-то и вопрос, у меня в 2010 сыпет ошибки, точнее при компиляции батником, а компилер от 2010 стоит

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
error C2143: syntax error : missing ';' before 'type'
error C2143: syntax error : missing ';' before 'type'
error C2143: syntax error : missing ')' before 'type'
error C2143: syntax error : missing ';' before 'type'
error C2065: 'Ix' : undeclared identifier
warning C4552: '<' : operator has no effect; expected operator with side-effect
error C2059: syntax error : ')'
error C2065: 'Ix' : undeclared identifier
error C2143: syntax error : missing ';' before '{'
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743305
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код вполне себе обычный. Разве что это не всегда было
Код: plaintext
1.
char tmp[64] = { 0 };


попробуй так написать
Код: plaintext
1.
2.
char tmp[64];
tmp[size] = 0;
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743309
oleqie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С++ такое поймет, а вот С - не факт. У тебя, скорее всего, этот файл компилируется С-компилятором.
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743317
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleqieС++ такое поймет, а вот С - не факт. У тебя, скорее всего, этот файл компилируется С-компилятором.

да, это с код, не ++
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743319
oleqie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил с VS2005 - С++ это понимает, а С - нет (те же ошибки лезут что и у вас)
Какие стандарты компилятор поддерживает и где это можно выбрать - не вижу пока...
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743322
oleqie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну тогда перенесите объявление Ix за пределы for, если использование С принципиально... Вроде, С99 должен такое поддерживать, а вот, выходит, что в МС не совсем С99, или это где-то выбрать можно.
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39743355
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleqieНу тогда перенесите объявление Ix за пределы for, если использование С принципиально... Вроде, С99 должен такое поддерживать, а вот, выходит, что в МС не совсем С99, или это где-то выбрать можно.

где-то видел, что вроде 2010 поддерживает стандарт с89, а не с99
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39744004
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TКод вполне себе обычный. Разве что это не всегда было
Код: plaintext
1.
char tmp[64] = { 0 };//<-----------весь массив?


попробуй так написать
Код: plaintext
1.
2.
char tmp[64];
tmp[size] = 0;



кстати, исправьте, если ошибаюсь, по-моему есть разница:
в первом случае пробивается 0 весь массив, в отличие от второго?
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39744044
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

да, конкретный элемент и все последующие за ним.
Код: plaintext
1.
2.
3.
4.
5.
char tmp[64] = { 0, 1, 2, 3 };// =>
// tmp[0] = 0;
// tmp[1] = 1;
// tmp[2] = 2;
// tmp[3..63] = 3;
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39744096
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TРазве что это не всегда было
Код: plaintext
1.
char tmp[64] = { 0 };


Я чисто из эрудиции спрошу - а когда и где это не всегда было?
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39744098
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинDima TКод вполне себе обычный. Разве что это не всегда было
Код: plaintext
1.
char tmp[64] = { 0 };//<-----------весь массив?


попробуй так написать
Код: plaintext
1.
2.
char tmp[64];
tmp[size] = 0;



кстати, исправьте, если ошибаюсь, по-моему есть разница:
в первом случае пробивается 0 весь массив, в отличие от второго?
Все верно, но в твоем случае без разницы, т.к. далее в цикле ты заполняешь все элементы до tmp[size].
...
Рейтинг: 0 / 0
VS2010 не понимает такую конструкцию?
    #39744570
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну яDima TРазве что это не всегда было
Код: plaintext
1.
char tmp[64] = { 0 };


Я чисто из эрудиции спрошу - а когда и где это не всегда было?До нашей эры в Палестине, например, этого не было.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS2010 не понимает такую конструкцию?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]