- 1
- 2
- 3
- 4
...
else
priv->bDmDisableProtect = fasle;
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+151
...
else
priv->bDmDisableProtect = fasle;
...
Всё было бы хорошо, не будь это исходники драйверов от Android...
+162
vector<int> vi;
vector<bool> vi_index;
const unsigned unicode_size=0x10FFF;
vi.resize (unicode_size+1);
vi_index.resize (unicode_size+1);
for (int fa=0;fa<vi.size();fa++)
vi[fa]=0;
for (int fa=0;fa<vi.size();fa++)
vi_index[fa]=false;
Человек не умеет инициализировать вектор. Ну, и пр.
+165
static string GetRequestParam(string request)
{
string result="";
int i = 4;
for(char c=request[i];c!=' ';c=request[++i])
result+=c;
return result;
}
+161
String^ TDebug::GetCurrentThreadFunctionName(int CallFunctionIndex)
{
return (gcnew StackTrace(true))->GetFrame(CallFunctionIndex)->GetMethod()->ToString();
};
void TDebug::ShowCurrentFunctionName(void)
{
Windows::Forms::MessageBox::Show(GetCurrentThreadFunctionName(2));
};
Помоему, в Microsoft Visual Studio 2010 отладчик для С++\CLI давно есть. :)
+172
//уничтожение буфера
void delbuf(void* &bf, char ntype)
{
if (ntype=='C')
{
if (bf!=(char*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='B')
{
if (bf!=(BYTE*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='I')
{
if (bf!=(int*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='F')
{
if (bf!=(double*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='D')
{
if (bf!=(double*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='W')
{
if (bf!=(WORD*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='L')
{
if (bf!=(long*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='S')
{
if (bf!=(short*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
if (ntype=='R')
{
if (bf!=(DWORD*) NULL)
{
delete[] bf;
bf=NULL;
}
return;
}
return;
}
86 строк вместо простого delete [] bf
+158
// TEMPLATE FUNCTION rotate
template<class _FI> inline
void rotate(_FI _F, _FI _M, _FI _L)
{if (_F != _M && _M != _L)
_Rotate(_F, _M, _L, _Iter_cat(_F)); }
template<class _FI> inline
void _Rotate(_FI _F, _FI _M, _FI _L,
forward_iterator_tag)
{for (_FI _X = _M; ; )
{iter_swap(_F, _X);
if (++_F == _M)
if (++_X == _L)
break;
else
_M = _X;
else if (++_X == _L)
_X = _M; }}
template<class _BI> inline
void _Rotate(_BI _F, _BI _M, _BI _L,
bidirectional_iterator_tag)
{reverse(_F, _M);
reverse(_M, _L);
reverse(_F, _L); }
template<class _RI> inline
void _Rotate(_RI _F, _RI _M, _RI _L,
random_access_iterator_tag)
{_Rotate(_F, _M, _L, _Dist_type(_F), _Val_type(_F)); }
template<class _RI, class _Pd, class _Ty> inline
void _Rotate(_RI _F, _RI _M, _RI _L, _Pd *, _Ty *)
{_Pd _D = _M - _F;
_Pd _N = _L - _F;
for (_Pd _I = _D; _I != 0; )
{_Pd _J = _N % _I;
_N = _I, _I = _J; }
if (_N < _L - _F)
for (; 0 < _N; --_N)
{_RI _X = _F + _N;
_RI _Y = _X;
_Ty _V = *_X;
_RI _Z = _Y + _D == _L ? _F : _Y + _D;
while (_Z != _X)
{*_Y = *_Z;
_Y = _Z;
_Z = _D < _L - _Z ? _Z + _D
: _F + (_D - (_L - _Z)); }
*_Y = _V; }}
Header из Microshit Visual C++ 6.0.
+155
#if __STDC_WANT_SECURE_LIB__
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcscat_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src);
#endif
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, wcscat_s, _Deref_prepost_z_ wchar_t, _Dest, _In_z_ const wchar_t *, _Source)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(wchar_t *, __RETURN_POLICY_DST, _CRTIMP, wcscat, _Pre_cap_for_(_Source) _Prepost_z_, wchar_t, _Dest, _In_z_ const wchar_t *, _Source)
_Check_return_ _CRTIMP _CONST_RETURN wchar_t * __cdecl wcschr(_In_z_ const wchar_t * _Str, wchar_t _Ch);
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t * _Str1, _In_z_ const wchar_t * _Str2);
#if __STDC_WANT_SECURE_LIB__
_Check_return_wat_ _CRTIMP_ALTERNATIVE errno_t __cdecl wcscpy_s(_Out_z_cap_(_SizeInWords) wchar_t * _Dst, _In_ rsize_t _SizeInWords, _In_z_ const wchar_t * _Src);
#endif
Хедеры из Microshit Visual Studio. Там так почти везде...
+160
//перевод целого числа в строку
//num-число
//nn-длина поля
char* num10toc(int num, int nn=4)
{
int i;
int sgmin=0;
int xnum=num;
char* p=lnum;
if (xnum<0)
{
sgmin=1;
xnum=-xnum;
}
memset(lnum,0,WMAX+1);
memset(lnum,0x20,WMAX);
i=lenint(xnum);
int j=i;
int mm=nn-i-sgmin;
if (mm>0)
{
p+=mm;
}
if (sgmin!=0)
{
*p='-';
p++;
}
if (xnum==0)
{
*p='0';
return &lnum[0];
}
while (xnum>0)
{
*(p+i-1)=(char)(xnum%10+0x30);
xnum/=10;
i--;
}
*(p+j)=0;
return &lnum[0];
}
Загадка: что выведется в следующих случаях?
printf("%s\n", num10toc(0, 5));
printf("%s\n", num10toc(1, 5));
printf("%s\n", num10toc(12, 5));
printf("%s\n", num10toc(123, 5));
printf("%s\n", num10toc(1234, 5));
printf("%s\n", num10toc(12345, 5));
printf("%s\n", num10toc(123456, 5));
+163
#define nCyrLang 40
char CyrNumLang[nCyrLang];
memset(&CyrNumLang[0],0,nCyrLang);
CyrNumLang[1]=7;
CyrNumLang[2]=9;
CyrNumLang[3]=11;
CyrNumLang[4]=83;
CyrNumLang[5]=84;
CyrNumLang[6]=85;
CyrNumLang[7]=86;
CyrNumLang[8]=44;
CyrNumLang[9]=87;
CyrNumLang[10]=48;
CyrNumLang[11]=88;
CyrNumLang[12]=89;
CyrNumLang[13]=53;
CyrNumLang[14]=56;
CyrNumLang[15]=6;
Труъ способ инициализации массивов.
+165
QTime time;
time.start();
for (int i = 0; i < 100; ) {
if (time.elapsed() > 10) {
time.start();
++i;
}
}
Организация задержки.