Почему это не допустимо
for( int i = 0, int x = 0; some condition; ++i, ++x )
и это
int i, x;
for( i = 0, x = 0; some condition; ++i, ++x )
Спасибо
когда вам нужно объявить две переменные разных типов, это невозможно сделать одним объявлением
Hackety hack hack:
for (struct {int i; char c;} loop = {0, 'a'}; loop.i < 26; ++loop.i, ++loop.c)
{
std::cout << loop.c << '\n';
}
; - )
это работает:
for( int i = 0, x = 0; some condition; ++i, ++x )
это похоже на объявление переменной:
int i, j; // correct
int i, int j; // wrong, must not repeat type
Поскольку объявление переменной (например, int x
) не является выражением, а оператор запятой (,
) объединяет только выражения.
В таблицу можно добавить «пустое» представление заголовка... это придаст начальному виду таблицы смещение, но после начала прокрутки смещение исчезнет. Не уверен, что это то, чего ты хочешь.
Если вы нуждаетесь в постоянном смещении и еще не используете заголовки разделов, то вы можете создать смещение аналогично приведенному выше, создав пользовательские виды для заголовков разделов, особенно если у вас есть только один раздел, это может дать вам вид постоянного смещения.
Я могу опубликовать образец кода, если он звучит так, будто вы ищете любой из них.
-121--818084-Почему он должен быть действительным? Это синтаксически бессмысленная конструкция. Что вы пытались с ним сказать?
Первая часть для заголовка
- это объявление.
int i = 0, int x = 0
не является допустимым объявлением. Он не будет компилироваться в для
по той же причине, по которой он не будет компилироваться в другом месте программы
int i = 0, int x = 0; // Syntax error
Когда необходимо объявить два объекта типа int
в одном объявлении, вы делаете это следующим образом
int i = 0, x = 0; // OK
То же самое можно использовать в для
for( int i = 0, x = 0; some condition; ++i, ++x )
(Но когда нужно объявить две переменные различных типов, это не может быть сделано одним объявлением и, следовательно, обе не могут быть объявлены в для
одновременно. По крайней мере один из них должен быть объявлен до для
.)
Правильная версия:
for (int i = 0, x = 0; some condition; ++i, ++x)
Это допустимо:
for(int i = 0, x = 0; condition; ++i, ++x );
int x, int y не является допустимым способом объявления переменных;
Поскольку объявление переменной (например, int x
) не является выражением и оператором запятой (,
) только сочетает выражения.