Уродливый код C ++ - PullRequest
       61

Уродливый код C ++

5 голосов
/ 22 октября 2008

Я работаю над prettyprinter на C ++ и хотел бы показать результаты prettyprinter, сравнивая код до и после его запуска. Кто-нибудь знает, где я могу найти некрасивый код C ++ для запуска довольно мило? В идеале код должен быть взят из какого-либо программного обеспечения с открытым исходным кодом.

Ответы [ 8 ]

10 голосов
/ 22 октября 2008

Все, что закодировано в соответствии с стандартами кодирования GNU , даст вам хреновый стиль отступа для практики. Дословный пример:

 if (x < foo (y, z))
   haha = bar[4] + 5;
 else
   {
     while (z)
       {
         haha += foo (z, z);
         z--;
       }
     return ++x + bar ();
   }
6 голосов
/ 22 октября 2008

Если вы не можете найти хороший корпус уродливого кода, вы всегда можете написать «кодировщик кода» и затем запустить его для некоторого среднего кода.

Например:

  • Удалить все незначительные пробелы
  • Удалить / вставить случайные пробелы
  • Заменяет вкладки разным количеством пробелов.
5 голосов
/ 22 октября 2008

Попробуйте выполнить поиск по "обфускации C ++", и вы сможете найти код C ++, который трудно читать.

2 голосов
/ 22 октября 2008

Вот список ошибок , зарегистрированных в проекте eclipse C / C ++ tools. Многие из ошибок касаются кода, который не был правильно отформатирован, поэтому вы можете увидеть, как они работали, и даже посмотреть на исправления, если они устранены.

2 голосов
/ 22 октября 2008

Не C ++, но вы участвовали в Международном конкурсе кодов с запутанным кодом C?

Проверьте некоторые из победителей код

2 голосов
/ 22 октября 2008

Еще один хороший тест - взять нормальный код C ++ и посмотреть, насколько хорошо он может переформатировать его в другой стандарт форматирования кода.

1 голос
/ 23 октября 2008

Ваш prettyprinter предположительно настраивается? Тогда он сможет генерировать некрасивый код для подходящих входных данных.

0 голосов
/ 02 октября 2011

Посмотрите на "игры в гольф" C ++ программы на сайте Code Golf Stack Exchange . Они очищены для экономии места.

...