- 1
- 2
- 3
// Всем привет. Я тоже принёс говнокода, но в необычном формате.
// А именно, я написал мини-книгу "60 антипаттернов для С++ программиста".
// https://pvs-studio.ru/ru/blog/posts/cpp/1053/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
// Всем привет. Я тоже принёс говнокода, но в необычном формате.
// А именно, я написал мини-книгу "60 антипаттернов для С++ программиста".
// https://pvs-studio.ru/ru/blog/posts/cpp/1053/
Там вы найдёте и реальный C++ говнокод и просто вредные советы в духе "Пишите код так, как будто его будет читать председатель жюри IOCCC и он знает, где вы живёте (чтоб приехать и вручить вам приз)".
Если сразу не понятно почему "совет" вреден, то там есть соответствующий разбор.
Готов подискутировать про написанное. Ну и приглашаю накидывать в комментариях аналогичные советы.
P.S. Предупреждаю: там много букв. Сразу запасайтесь кофе/энергетиком. Или попкорном :)
0
/*
GNOT General Public License!
(c) 1995-2011 Microsoft Corporation
*/
#include "dos.h"
#include "win95.h"
#include "win98.h"
#include "sco_unix.h"
#include "metro.h" //windows 8
class Windows8 extends WindowsSeven implements Nothing {
int totalNewFeatures = 6; //task manager, ribbon, new bsod =D, new WAT, metro, linux_block
int totalWorkingFeatures = 1; //bsod
float bugCount = 345889E+09;
bool readyForRelease = FALSE;
void main() {
while (!CRASHED) {
if (first_time_install) {
if (installedRAM < 2GB || processorSpeed < 4GHz || videoCard < 1) { //requires video card
MessageBox("Hardware incompatibility error.");
GetKeyPress();
//BSOD();
BSOD2(); //windows 8
}
}
Make10GBswapfile();
SearchAndDestroy(FIREFOX|OPENOFFICEORG|ANYTHING_GOOGLE|LINUX_PARTITION|GRUB); //new features (linux & grub)
AddRandomDriver();
MessageBox("Driver incompatibility error.";
GetKeyPress();
//BSOD();
BSDO2(); //windows 8
}
//printf("Welcome to Windows 2000");
//printf("Welcome to Windows XP");
//printf("Welcome to Windows Vista");
//printf("Welcome to Windows 7");
printf("Welcome to Windows 8"); //8 : official name?
goto check_license;
goto start_metro; //windows 8 exclusive!! remove it on future versions
start_metro:
StartMetroUI();
if (WindowsStartMenuClick == 1)
{
goto start_metro;
}
else
{
if (TryingToRemoveMetroUsingRegedit == 1)
{
goto start_metro;
}
}
if (still_not_crashed) {
//CheckUserLicense();
//DoubleCheckUserLicense();
//TripleCheckUserLicense();
goto check_license;
check_license:
#ifdef NEED_LICENSE //DO_NOT_REMOVE, ALWAYS NEED A LICENSE
#include "string.h"
#endif
if (strlen(LicenseInput) < 10 || CheckOEMLicense(LicenseInput) < 1)
{
MessageBox("License is already in use or invalid.");
GetKeyPress();
//BSOD();
BSOD2(); //windows 8
}
else
{
goto start_metro;
}
RelayUserDeatilsToRedmond();
DisplayFancyGraphics();
FlickerLED(hard_drive);
//SetTheme(WindowsVista);
SetTheme(WindowsSeven);
RunWindowsSeven();
}
}
return LotsMoreMoney;
}
0
// Решает задачу из огэ по информатике
// Первое число - количество
// затем числа идут
// выводит наибольшее число которое оканчивается на 3
#include <vector>
#include <stdio.h>
typedef unsigned char zero;
typedef unsigned int cat;
cat rex = 0;
class orange
{
public:
cat *bananas = nullptr;
std::vector<zero> apples;
void a()
{
for (zero *ufo = apples.data(); ufo - apples.data() < apples.size();)
{
switch (*ufo++)
{
case 1: if (!bananas) bananas = new cat[*(cat *)ufo]; ufo += sizeof(int); break;
case 7: delete[] bananas; bananas = nullptr; break;
case 4: bananas[*(cat *)ufo] = bananas[*(cat *)(ufo + sizeof(int))]; ufo += 2 * sizeof(int); break;
case 0: bananas[*(cat *)ufo] = *(cat *)(ufo + sizeof(int)); ufo += 2 * sizeof(int); break;
case 8: bananas[*(cat *)ufo] = bananas[*(cat *)(ufo + sizeof(int)) + bananas[*(cat *)(ufo + sizeof(int) * 2)]]; ufo += 3 * sizeof(int); break;
case 9: printf("%d\n", bananas[*(cat *)ufo]); ufo += sizeof(int); break;
case 2: rex = bananas[*(cat *)ufo]; ufo += sizeof(int); break;
case 6: scanf("%ud", bananas + *(cat *)ufo); ufo += sizeof(int); break;
case 3:
{
if (bananas[*(cat *)ufo] > bananas[*(cat *)(ufo + sizeof(int))]) bananas[*(cat *)ufo] = bananas[*(cat *)ufo];
else bananas[*(cat *)ufo] = bananas[*(cat *)ufo + *(cat *)(ufo + sizeof(int))]; ufo += 2 * sizeof(int); break;
}
case 5: bananas[*(cat *)ufo] = bananas[*(cat *)ufo] % bananas[*(cat *)(ufo + sizeof(int))]; ufo += 2 * sizeof(int); break;
}
}
apples.clear();
}
void a(zero melon)
{
apples.push_back(melon);
}
};
int main()
{
orange *limon = new orange;
cat timings[] =
{
1, 16, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0,
0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0
};
cat peoples[] = { 1, 1, 0, 0, 0, 6, 0, 0, 0, 0, 2, 0, 0, 0, 0, 7 };
int backups[] = { 9, 0, 0, 0, 0 };
cat buldogs[] =
{
6, 2, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 2, 0, 0, 0, 4, 7, 0, 0, 0, 2, 0, 0, 0, 5, 2, 0, 0, 0, 1, 0, 0, 0,
8, 2, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0,
};
for (cat fruit = 0; fruit < 0xE + 0b10; ++fruit) {limon->a(peoples[fruit]);} limon->a();
for (cat juicegrinding = 0; juicegrinding < 33 + 0x50; juicegrinding++){limon->a(timings[juicegrinding]);}
for (cat fish = 0; fish < rex; fish += (100 ^ 0x64 + 0b11) - 0x2)
{
for (cat limons = 0; limons < 2 * 2 * 2 * 2 * 2 + 0b100000 - 1; ++limons){limon->a(buldogs[limons]);}
}
for (cat apples = 0; apples < 0x16 - 0b10000 - 1; apples++){limon->a(backups[apples]);} limon->a(); delete limon;
}
Чувак, позволь мне рассказать, я как волшебник C++, разворачивающий свои кодовые заклинания, словно колдун в цифровом мире. У меня этот язык в кармане, братан, словно дирижер, ведущий симфонию из единиц и нулей. Но не думай, что я буду тут прямо о своей крутости говорить, ой нет, я предпочитаю позволить моему коду говорить за меня.
Когда я погружаюсь в C++, это словно нырок в бесконечный океан возможностей. Я танцую с указателями, жонглирую ссылками и скачу на волнах управления памятью, словно настоящий мастер. Это дикая гонка, мой друг, но именно от этой адреналиновой суеты я получаю настоящий кайф.
Но знаешь, что по-настоящему круто? Сила абстракции, парень. Я обожаю создавать эти модульные, многоразовые блоки кода, называемые классами. Они как маленькие вселенные функциональности, которые я могу вызывать в любой момент. А шаблоны, о, братишка, шаблоны — это как швейцарские ножи C++. Они позволяют мне раскрыть всю мощь вычислений на этапе компиляции, словно безумный ученый, готовящий самые потрясающие зелья.
А теперь сделаем небольшой отступление. Вообрази, чувак, я вгружен в кодовые окопы, сражаясь с багами и отлавливая неэффективности. Это как бесконечный квест, борьба со временем и сложностью. Но, эй, у меня есть мой надежный напарник — стандартная библиотека C++. Она — мой арсенал контейнеров, алгоритмов и вспомогательных функций. С её помощью я могу нарезать и перемешивать данные, словно настоящий шеф-повар в цифровой кухне.
И не забывай про производительность, парень. Я стараюсь выжать каждую каплю мощи из своего кода. Я ныряю в низкоуровневые операции, знакомлюсь с железом. Вставки ассемблера — моё тайное оружие, способ связи с самим железом. Оптимизирую регистры, высвобождаю кэш и расширяю границы того, что возможно.
0
void
AuxFunc::homePath(std::string *filename)
{
char *fnm = getenv("USERPROFILE");
if(fnm)
{
*filename = std::string(getenv("USERPROFILE"));
}
else
{
fnm = getenv("HOMEDRIVE");
if(fnm)
{
*filename = std::string(getenv("HOMEDRIVE"));
}
else
{
fnm = getenv("HOMEPATH");
if(fnm)
{
*filename = std::string(getenv("HOMEPATH"));
}
else
{
fnm = getenv("HOME");
if(fnm)
{
*filename = std::string(getenv("HOME"));
}
else
{
fnm = getenv("SystemDrive");
if(fnm)
{
*filename = std::string(getenv("SystemDrive"));
}
else
{
std::cerr << "Cannot find user home folder" << std::endl;
exit(1);
}
}
}
}
}
toutf8(*filename);
}
Угадайте откуда код!
−2
Девочки, с 8 марта!
+2
while (!cmpts.empty() && !ec)
{
path f = std::move(cmpts.front());
cmpts.pop_front();
if (f.empty())
{
// ignore empty element
}
else if (is_dot(f))
{
if (!is_directory(result, ec) && !ec)
ec.assign(ENOTDIR, std::generic_category());
}
else if (is_dotdot(f))
{
auto parent = result.parent_path();
if (parent.empty())
result = pa.root_path();
else
result.swap(parent);
}
else
{
result /= f;
if (is_symlink(result, ec))
{
path link = read_symlink(result, ec);
if (!ec)
{
if (--max_allowed_symlinks == 0)
ec.assign(ELOOP, std::generic_category());
else
{
if (link.is_absolute())
{
result = link.root_path();
link = link.relative_path();
}
else
result = result.parent_path();
cmpts.insert(cmpts.begin(), link.begin(), link.end());
}
}
}
}
}
Это из GNU libstdc++.
Код то может и не говно, но от форматирования блевать тянет.
Зачем такое кто знает?
−9
static int dh_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
{
return
ossl_ffc_params_cmp(&a->pkey.dh->params, &a->pkey.dh->params,
a->ameth != &ossl_dhx_asn1_meth);
}
Ну и где здесь вулн?
−1
std::int32_t(v8::Maybe<std::int32_t>::* maybe_from_just)() && = v8::Maybe<std::int32_t>::FromJust;
0
Праизвадительнасть труда kodemonkey можна зафорсить, если запелить несколька курсорав.
Чем больше курсорав - тем вышы праизвадительнасть
0
/*++
Intel Corporation Proprietary Information
Copyright (c) 1995 Intel Corporation
This listing is supplied under the terms of a license agreement with
Intel Corporation and may not be used, copied, nor disclosed except in
accordance with the terms of that agreeement.
Module Name:
addrconv.c
Abstract:
This module contains the address conversion routines from the
winsock2 API. This module contains the following functions.
htonl()
htons()
ntohl()
ntohs()
inet_addr()
inet_ntoa()
WSAHtonl()
WSAHtons()
WSANtohl()
WSANtohs()
Author:
Dirk Brandewie [email protected] 14-06-1995
[Environment:]
[Notes:]
Revision History:
22-Aug-1995 [email protected]
Cleanup after code review. Moved includes to precomp.h
--*/
#include "precomp.h"
// these defines are used to check if address parts are in range
#define MAX_EIGHT_BIT_VALUE 0xff
#define MAX_SIXTEEN_BIT_VALUE 0xffff
#define MAX_TWENTY_FOUR_BIT_VALUE 0xffffff
// Defines for different based numbers in an address
#define BASE_TEN 10
#define BASE_EIGHT 8
#define BASE_SIXTEEN 16
//
// Macros for swapping the bytes in a long and a short.
//
#define SWAP_LONG(l) \
( ( ((l) >> 24) & 0x000000FFL ) | \
( ((l) >> 8) & 0x0000FF00L ) | \
( ((l) << 8) & 0x00FF0000L ) | \
( ((l) << 24) & 0xFF000000L ) )
#define WS_SWAP_SHORT(s) \
( ( ((s) >> 8) & 0x00FF ) | \
( ((s) << 8) & 0xFF00 ) )
//
// This preinitialized array defines the strings to be used for
// inet_ntoa. The index of each row corresponds to the value for a byte
// in an IP address. The first three bytes of each row are the
// char/string value for the byte, and the fourth byte in each row is
// the length of the string required for the byte. This approach
// allows a fast implementation with no jumps.
//
BYTE NToACharStrings[][4] = {
'0', 'x', 'x', 1,
'1', 'x', 'x', 1,
'2', 'x', 'x', 1,
'3', 'x', 'x', 1,
'4', 'x', 'x', 1,
'5', 'x', 'x', 1,
'6', 'x', 'x', 1,
'7', 'x', 'x', 1,
'8', 'x', 'x', 1,
'9', 'x', 'x', 1,
'1', '0', 'x', 2,
'1', '1', 'x', 2,
'1', '2', 'x', 2,
'1', '3', 'x', 2,
'1', '4', 'x', 2,
'1', '5', 'x', 2,
'1', '6', 'x', 2,
голубой ёбаный, иди на хуй отсюда