- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
void input (char inpt [64])
{
for (;;)
{
int i(0);
cin >> inpt;
i ++;
if (inpt[i] == '\n')
inpt[i] = '\0';break;
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+55
void input (char inpt [64])
{
for (;;)
{
int i(0);
cin >> inpt;
i ++;
if (inpt[i] == '\n')
inpt[i] = '\0';break;
}
}
+139
struct Counter{
static int k;
Counter(){ k++; }
~Counter() { k--; }
};
int Counter::k = 0;
#define LOL(x) {string s = #x; Counter c##x; cout<<s.substr(0,1+s.find('['))<<Counter::k<<"]="<<x<<'\n'; }
+144
while (1) { // Не все знают логические значения
...
}
for (;;) // Ещё хуже
{ ... }
+135
void SoundService::stop(){
if (mOutputMixObj != NULL) {
(*mOutputMixObj)->Destroy(mOutputMixObj);
mOutputMixObj = NULL;
}
if(mEngineObj != NULL){
(*mEngineObj)->Destroy(mEngineObj);
mEngineObj = NULL; mEngine = NULL;
}
}
Случайно нашёл в книге по Android NDK, открытой на случайной странице.
+145
//bytes 0-13
bmp.push_back('B'); bmp.push_back('M'); //0: bfType
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //2: bfSize; size not yet known for now, filled in later.
bmp.push_back(0); bmp.push_back(0); //6: bfReserved1
bmp.push_back(0); bmp.push_back(0); //8: bfReserved2
bmp.push_back(54 % 256); bmp.push_back(54 / 256); bmp.push_back(0); bmp.push_back(0); //10: bfOffBits (54 header bytes)
//bytes 14-53
bmp.push_back(40); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //14: biSize
bmp.push_back(width % 256); bmp.push_back(width / 256); bmp.push_back(0); bmp.push_back(0); //18: biWidth
bmp.push_back(height % 256); bmp.push_back(height / 256); bmp.push_back(0); bmp.push_back(0); //22: biHeight
bmp.push_back(1); bmp.push_back(0); //26: biPlanes
bmp.push_back(outputChannels * 8); bmp.push_back(0); //28: biBitCount
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //30: biCompression
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //34: biSizeImage
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //38: biXPelsPerMeter
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //42: biYPelsPerMeter
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //46: biClrUsed
bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); bmp.push_back(0); //50: biClrImportant
+138
//Pacчитывaeт пo дaнным кoopдeнaтaм и дaнным paзмepaм экpaнa тeкcтypныe кoopдeнaты и зaпиcывaeт
//в мaccив, чтoб GL пpям тaк cъeл
void ImageScopeToTexCoordWithMaterialSize(TImageScope img, float sx, float sy, float*tex)
{
.....
//Пepecчитывaeм тeкcтypныe кoopдeнaты
.....
//Koнcтpyктop, кoтopый пpи coздaнии caм ceбя дoбaвить в peдep лиcт
.....
//Koнcтpyктop, кoтopый пpocтo coздacт oбeкт. B лиcт peндepингa нyжнo дoбoвлять caмocтoятeльнo
.....
//Пpocтo pиcyeт нa экpaнe HUD oбeкт. Пpeдпoлaгaeтcя, чтo тeкcтypa кoтopyю бyдим нaклaдывaть yжe выбpaнa.
//Paбoтaeт бeз вcякoй oптимизaии, тaк чтo лyчшe пoльзoвaть кoмпaнeнт, чeм ee. Ee тoлькo ecли
//oчeнь пpиcпичит вывoдить гpaфикy бeз oбeктa
.....
//GUI мeнaджep. B нeм зaпиcaны кapдинaты мeтoк тeкcтypы+caмa тeкcтypa, a GUI кoмпaнeнты тoлькo oтcюдa этo и тянyт
//Пoкa зaпиcи нyжнo coздaвaть caмocтoятeльнo, нo кaк тoлькo paзбиpycь c нopмaльнoй oтpиcoвкoй GUI oбязaтeльнo зaймycь
.....
//Бaзoвый GUI кoмпaнeнт. Умeeт тoлькo pиcoвaть cвoй кoмпaнeнт, ecли дaть eмy мeнaджep
class TGUIBase: public TBaseObject
{
private:
float width;//Шиpeнa цeнтpaльнoй чacти
float height;//Bыcoтa цeнтpaльнoй чacти
GLfloat gui[8];//Koopдинaты вepтикcoв
//GLfloat*tex;//Koopдинaты вepшин
vec2f positions[9];//Koopдинaты элeмeнтoв
vec2f sizes[9];//Paзмepы элимeнтoв
bool NeedFindSize;//Hyжнo ли пepecчитывaть
vec3f oldpos;//Cтapыe кoopдинaты
TGUIImage*oldimg;//Cтapый cкин
vec2f oldsize;//Cтapыe paзмepы
TObjList*stack;
GLfloat alltex[9][8];//Bce тeкcтypныe вepтeкcы
.....
void CalcCoords(void*viewer);//Cчитaeм peaльныe пoзиции нa экpaнe. Bызывaть, тoгдa, кoгдa кapдинaты измeнeны
.....
void CalcTextureCoords(void*viewer);//Pacчитывaeм вce тeкcтypныe кopдинaты, вызывaть пpи вcякoй cмeнe
.....
// вpoщaeм нa ocтaвшийcя yгoл
if(lastRotX != 1.0f)
{
// Чтoбы нaйти ocь, вoкpyг кoтopoй вpaщaтьcя ввepx и вниз, нyжнo
// нaйти вeктop, пepпeндикyляpный вeктopy взглядa кaмepы и
// вepтикaльнoмy вeктopy.
// Этo и бyдeт нaшa ocь. И пpeждe чeм иcпoльзoвaть этy ocь,
// нeплoxo бы нopмaлизoвaть ee.
.....
//Boзвpaщяeт cкoлькo милиcикyнд пpoшлo oт нaчaлa aпycкa кoмпьютepa
unsigned long GetNowTime()
{
return GetTickCount();
}
.....
class TCamera: public TBaseObject
{
public:
bool LookPoint;//Cмoтpeть нa тoчкy Direction или в нaпpoвлeнии Direction
float Angle;//Угoл зpeния
float FarVision;//To кaк дaлeкo видить
float NearVision;//To кaк близкo видить
.....
//**Moдyль paбoты c тyмaнoм. Зaвepшoн**//
.....
//Пepeвoдит кapдинaты из пикceльныx (2D) в eдиничныe, c yчeтoм paзмepoв экpaнa
//x y - кapдинaты в пикcиляx
//sx sy - paзмepы экpaнa в пикcиляx
.....
Тот случай, когда лучше было бы оставить код без комментариев..
+42
class Message {
public:
explicit Message(Level level);
~Message();
Level level() const { return level_; }
const time_t& time() const { return time_; }
std::string text() const { return s_.str(); }
bool enabled() const { return enabled_; }
template<class T>
Message& operator << (const T& t)
{
if (enabled_)
s_ << t;
return *this;
}
Message(Message& msg) { moveFrom(msg); }
Message& operator = (Message& msg) { moveFrom(msg); return *this; }
struct Ref {
explicit Ref(Message& msg): msg_(&msg) {}
Message* msg_;
};
operator Ref() { return Ref(*this); }
Message(Ref r) { moveFrom(*r.msg_); }
Message& operator = (Ref r) { moveFrom(*r.msg_); return *this; }
private:
Level level_;
time_t time_;
std::ostringstream s_;
bool enabled_;
void moveFrom(Message& msg)
{
level_ = msg.level_;
time_ = msg.time_;
s_.str(msg.s_.str());
enabled_ = msg.enabled_;
msg.enabled_ = false;
}
};
move головного мозга
+137
_DECLSPEC void StringToHex(
const _tstring &ts,
BYTE *pBuffer,
size_t nBytes)
{
USES_CONVERSION;
const std::string s = T2A(const_cast<PTSTR>(ts.c_str()));
for (size_t i = 0; i < nBytes; i++)
{
const size_t stringOffset = i * 2;
BYTE val = 0;
const BYTE b = s[stringOffset];
if (isdigit(b))
{
val = (BYTE)((b - '0') * 16);
}
else
{
val = (BYTE)(((toupper(b) - 'A') + 10) * 16);
}
const BYTE b1 = s[stringOffset + 1];
if (isdigit(b1))
{
val += b1 - '0' ;
}
else
{
val += (BYTE)((toupper(b1) - 'A') + 10);
}
pBuffer[i] = val;
}
}
ночнём-с, ребзя!
+145
int boolToInt(bool b)
{
bool * boolPtr = &b;
char * boolToCharPtr = reinterpret_cast<char *>(boolPtr);
char * resultCharPtr;
resultCharPtr = (char*) malloc(4);
for (int i = 0; i < sizeof(int); i++)
{
if (i == 0)
{
resultCharPtr[i] = boolToCharPtr[0];
}
if (i == 1)
{
resultCharPtr[i] = 0x00;
}
if (i == 2)
{
resultCharPtr[i] = 0x00;
}
if (i == 3)
{
resultCharPtr[i] = 0x00;
}
}
int * intPtr = reinterpret_cast<int *> (resultCharPtr);
return *intPtr;
}
Удобная функция для конвертации bool в int
+140
virtual QModelIndex parent(const QModelIndex &child) const = 0;
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const;
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0;
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const = 0;
virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const = 0;
virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
virtual QVariant headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const;
virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value,
int role = Qt::EditRole);
virtual QMap<int, QVariant> itemData(const QModelIndex &index) const;
virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles);
virtual QStringList mimeTypes() const;
virtual QMimeData *mimeData(const QModelIndexList &indexes) const;
virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex &parent) const;
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex &parent);
ну, вы поняли. они написали тысячи говнокода и говорят, что это круто.
они написали говно-пример, и говорят, что это круто.
а вы что думаете по этому поводу?