Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / И снова туплю) / 7 сообщений из 7, страница 1 из 1
19.07.2007, 18:03
    #34671325
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова туплю)
Код: plaintext
1.
2.
	for (char c, int i =  0 ; i <=  10 ; i++)
		printf("\n%u", i);

такое работает, но если:
Код: plaintext
1.
for (stLine *line, StackNode *iter = m_stack_lines.LastPtr(); iter; iter = iter->nextPtr)

думает, что stLine *line, StackNode это значит две переменные типа stLine, одна указатель *line и вторая StackNode, а *iter просит убрать нафиг.

Никто не скажет почему?
...
Рейтинг: 0 / 0
19.07.2007, 18:05
    #34671338
daevaorn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова туплю)
Tubrik
Код: plaintext
1.
2.
	for (char c, int i =  0 ; i <=  10 ; i++)
		printf("\n%u", i);

такое работает, но если:
Код: plaintext
1.
for (stLine *line, StackNode *iter = m_stack_lines.LastPtr(); iter; iter = iter->nextPtr)

думает, что stLine *line, StackNode это значит две переменные типа stLine, одна указатель *line и вторая StackNode, а *iter просит убрать нафиг.

Никто не скажет почему?
потому что в for объявлять можно переменные "одного типа".
...
Рейтинг: 0 / 0
19.07.2007, 18:13
    #34671364
Tubrik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова туплю)
Код: plaintext
1.
for (char c, int i =  0 ; i <=  10 ; i++)
		printf("\n%u", i);
это вроде тоже не одного типа или они автоматически приводятся к одному?
Код: plaintext
1.
StackNode	line, StackNode iter 
такой вариант компилятор тоже не устраивает и такой:
Код: plaintext
for (char *c, int *i =  0 ; i <=  10 ; i++)
...
Рейтинг: 0 / 0
19.07.2007, 21:53
    #34671734
daevaorn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова туплю)
Tubrik
Код: plaintext
1.
for (char c, int i =  0 ; i <=  10 ; i++)
		printf("\n%u", i);
это вроде тоже не одного типа или они автоматически приводятся к одному?
Код: plaintext
1.
StackNode	line, StackNode iter 
такой вариант компилятор тоже не устраивает и такой:
Код: plaintext
for (char *c, int *i =  0 ; i <=  10 ; i++)

да. все эти три конструкции не правильные.
...
Рейтинг: 0 / 0
20.07.2007, 05:05
    #34671940
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова туплю)
Tubrik
Код: plaintext
1.
for (char c, int i =  0 ; i <=  10 ; i++)
		printf("\n%u", i);
это вроде тоже не одного типа или они автоматически приводятся к одному?
Код: plaintext
1.
StackNode	line, StackNode iter 
такой вариант компилятор тоже не устраивает и такой:
Код: plaintext
for (char *c, int *i =  0 ; i <=  10 ; i++)

что в переводе на русский язык означает:
адресу (некой переменной типа int) мы присваиваем ноль, следим чтобы этот адрес был не больше 10, увеличиваем этот адрес на 1 за цикл.
Бред правда?
...
Рейтинг: 0 / 0
20.07.2007, 05:55
    #34671951
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова туплю)
Alexsalog wrote:

> увеличиваем этот адрес на 1 за цикл.
на sizeof(int), а не на 1...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.07.2007, 10:44
    #34672397
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова туплю)
Tubrik
Код: plaintext
1.
2.
	for (char c, int i =  0 ; i <=  10 ; i++)
		printf("\n%u", i);

такое работает

Такая конструкция for-initialization-statement вообще не допустима, как и обычный definition. Имхо, это кровется в спецификации опретора запятая. Если есть желанием можете покапать стандарт в 6.5.3 и 5.18.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / И снова туплю) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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