Странная программа C

Это зависит немного от того, насколько сложный документ должен быть.

я использовал minidom много для записи XML, но это обычно просто читало документы, делая некоторые простые преобразования, и записывая их обратно. Это работало достаточно хорошо, пока мне не была нужна способность заказать атрибуты элемента (для удовлетворения древнего приложения, которое не анализирует XML правильно). В той точке я сдался и записал XML сам.

, Если Вы только работаете над простыми документами, затем делая его сами, может быть более быстрым и более простым, чем изучение платформы. Если можно очевидно записать XML вручную, то можно, вероятно, кодировать его вручную также (просто не забывают правильно выходить из специальных символов и использования str.encode(codec, errors="xmlcharrefreplace")). Кроме этой путаницы, XML является достаточно регулярным, который Вы не делаете потребность специальная библиотека для записи его. Если документ является слишком сложным для записи вручную, то необходимо, вероятно, изучить одну из платформ, уже упомянутых. Ни в каком смысле должен, необходимо записать общему писателю XML.

5
задан Tim Post 12 November 2009 в 18:21
поделиться

4 ответа

GCC выдает ошибку

: вложенное переопределение 'struct st'
ошибка: 'struct st' не имеет члена с именем 'a1'

Если VC6 скомпилирует это, это нормально, но это неверно.

Если вы хотите узнать размер obj, это sizeof obj . Я бы предположил, что VC6 просто выровнял структуру и присвоил ей три целых числа.

8
ответ дан 13 December 2019 в 22:10
поделиться

Даже беглый взгляд на это наводит на мысль, что вы определили одну структуру, объявили две переменные типа struct. Следовательно, sizeof (obj) и sizeof (obj1) должны быть одинаковыми, поскольку они оба имеют тип st! Излишне говорить, что вложенные структуры с одинаковым именем недопустимы! И удивился, что это скомпилировано. Но помните, C изменился с тех пор, как VC 6 вышел (если мне не изменяет память).

1
ответ дан 13 December 2019 в 22:10
поделиться

Это недопустимый код C. В C нет «области действия класса», и с точки зрения языка C оба определения struct st определяют один и тот же тип дважды. Это незаконно.

Это только правильно сформированный код C ++, но в остальном программа просто вычисляет и возвращает 0. Почему она перепрыгивает через все эти обручи, чтобы вернуть 0, мне непонятно. Программа плохо оформлена и на C ++. Недопустимо объявлять класс st как член класса st (то есть с тем же именем).

0
ответ дан 13 December 2019 в 22:10
поделиться

Размер obj и obj1 одинаковый. Значение obj.a1 + obj1.b не определено, поскольку ни один из них не был инициализирован И ваш код И компилятор не работают. Если это действительно СОЗДАНО, все ставки отключены.

NB:

Этот код получил ОЧЕНЬ « help » от своего компилятора, чтобы он действительно работал. Под словом «помощь» я подразумеваю: «У нас есть крайний срок, чтобы выпустить это ... время сортировки ошибок, особенно в том, что касается синтаксического анализатора!»

1
ответ дан 13 December 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: