- 1
- 2
- 3
if (strlen($arResult["ERROR_MESSAGE"]) <= 0){
// любая ахинея
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+157
if (strlen($arResult["ERROR_MESSAGE"]) <= 0){
// любая ахинея
}
2014 год. Битрикс все так же терпеливо ожидает патент на строки отрицательной длины.
Полагаю, такой икспрешн используется не только в компоненте корзины, учитывая страсть авторов к копипасте.
+133
void mb_sim_pix(uchar* IN, uchar* OUT, int *WH, int *bSize, int *A, int *pSize, float *threshold){
int pos = mb_calc_pos(A, WH, pSize);
int nPos;
int i, n;
int B[2];
for(n = 0; n < 4; n++){
switch(n){
case 0:
B[0] = A[0] + 1;
B[1] = A[1];
case 1:
B[0] = A[0];
B[1] = A[1] - 1;
case 2:
B[0] = A[0];
B[1] = A[1] + 1;
case 3:
B[0] = A[0] - 1;
B[1] = A[1];
}
if( B[0] >= 0 && B[0] < WH[0] &&
B[1] >= 0 && B[1] < WH[1]){
nPos = mb_calc_pos(B, WH, pSize);
if(mb_val_pix(OUT, &nPos, pSize) == 0){
if(mb_sim_pack(IN, &pos, &nPos, pSize) >= *threshold){
for(i = 0; i < *pSize; i++) OUT[nPos + i] = IN[nPos + i];
mb_sim_pix(IN, OUT, WH, bSize, B, pSize, threshold);
}
}
}
}
}
Тоже самое через if работает, а через switch проваливается на значении 0 все итерации. Почему?
+18
//main.cpp:
#define THREAD_COUNT 2
#include "winparallel.h"
main1()
{
lock(1);
int i=0; while(i++<10)
printf("1: %d\n", i);
unlock(1);
}
main2()
{
lock(1);
int i=0; while(i++<10)
printf("2: %d\n", i);
unlock(1);
}
main3(){};
main4(){};
main5(){};
main6(){};
main7(){};
main8(){};
//=====================================================================================
//winparallels.h:
#include <windows.h>
#define _MAX_CORES 8
LPVOID _void;
#define main1() DWORD WINAPI _main1(LPVOID lpParam)
#define main2() DWORD WINAPI _main2(LPVOID lpParam)
#define main3() DWORD WINAPI _main3(LPVOID lpParam)
#define main4() DWORD WINAPI _main4(LPVOID lpParam)
#define main5() DWORD WINAPI _main5(LPVOID lpParam)
#define main6() DWORD WINAPI _main6(LPVOID lpParam)
#define main7() DWORD WINAPI _main7(LPVOID lpParam)
#define main8() DWORD WINAPI _main8(LPVOID lpParam)
DWORD WINAPI _main1(LPVOID);
DWORD WINAPI _main2(LPVOID);
DWORD WINAPI _main3(LPVOID);
DWORD WINAPI _main4(LPVOID);
DWORD WINAPI _main5(LPVOID);
DWORD WINAPI _main6(LPVOID);
DWORD WINAPI _main7(LPVOID);
DWORD WINAPI _main8(LPVOID);
HANDLE _locks[_MAX_CORES];
int _argc; char **_argv;
void lock(int n) { DWORD res = WaitForSingleObject(_locks[n], INFINITE); }
void unlock(int n) { ReleaseMutex(_locks[n]); }
int main(int argc,char **argv) {
HANDLE threads[_MAX_CORES];
DWORD id;
int THREADS = THREAD_COUNT;
if (THREADS<=0) {
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
THREADS = sysinfo.dwNumberOfProcessors;
if (THREADS>_MAX_CORES) THREADS = _MAX_CORES;
}
_argc = argc; _argv = argv;
_locks[0] = CreateMutex(NULL,FALSE,NULL);
_locks[1] = CreateMutex(NULL,FALSE,NULL);
_locks[2] = CreateMutex(NULL,FALSE,NULL);
_locks[3] = CreateMutex(NULL,FALSE,NULL);
_locks[4] = CreateMutex(NULL,FALSE,NULL);
_locks[5] = CreateMutex(NULL,FALSE,NULL);
_locks[6] = CreateMutex(NULL,FALSE,NULL);
_locks[7] = CreateMutex(NULL,FALSE,NULL);
threads[0]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main1,NULL,0,&id);
if (THREADS>=2)
threads[1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main2,NULL,0,&id);
if (THREADS>=3)
threads[2]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main3,NULL,0,&id);
if (THREADS>=4)
threads[3]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main4,NULL,0,&id);
if (THREADS>=5)
threads[4]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main5,NULL,0,&id);
if (THREADS>=6)
threads[5]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main6,NULL,0,&id);
if (THREADS>=7)
threads[6]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main7,NULL,0,&id);
if (THREADS>=8)
threads[7]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main8,NULL,0,&id);
WaitForMultipleObjects(THREADS, threads, TRUE, INFINITE);
return 0;
}
>После этого всё что нужно освоить про потоки - работу с локами. Локи - это скандинавский бог приостановки потока.
+16
struct WideParams
{
WideParams(size_t CountParameters...):
Посоны, это бомба. Вот что я обнаружил в проекте.
+24
#include <conio.h>
#include <stdio.h>
const int SIZE = 33;
void DecToBin (unsigned int num, char *bin)
{
int i,j;
char tmp[SIZE];
for(i=0; num; num>>=1, i++)
tmp[i] = (num&1)?('1'):('0');
for(j=0; j<i; j++)
bin[j] = tmp[i-j-1];
bin[j]='\0';
}
unsigned int shl(unsigned int num, int shift)
{
return (num << shift) | (num >> 32 - shift);
}
void main()
{
int n, m;
scanf("%d", &n);
char bin[SIZE];
DecToBin(n,bin);
printf("%s\n", bin);
m = shl(n, 35);
DecToBin(m,bin);
printf("%s\n", bin);
_getch();
}
Еще одна очередная лаба, но уже код преподавателя, который он дал в качестве примера. Сказал что код на C++ (к вопросу, где здесь с++), и что нам нужно переписать его на "яве".
+135
public int getFileRowsCount(string pathToFile)
{
System.IO.TextReader streamReader = new System.IO.StreamReader(pathToFile);
int rowsCounter = 0;
while ((streamReader.ReadLine()) != null)
{
rowsCounter++;
}
streamReader.Close();
return rowsCounter;
}
Из http://habrahabr.ru/post/149877/
И коммент афтора - "Здесь всё просто: пока не дойдём до пустой строки, прибавляем к счётчику строк единичку. Функция возвращает количество строк."
+122
Console.WriteLine(Math.Sin(long.MaxValue));
Выведет 9,22337203685478E+18
+163
THTTPServer::TDynamicResponse::~TDynamicResponse( void )
{
if(typeid(*this)==typeid(TDynamicResponse))//Борьба с pure virtual function call.
this->flush();
};
Проект поменьше.
+126
uses
crt;
var
chasov,
minutov,
sekundov :byte;
tekushchiy_sekund:word;
begin
clrscr;
write(' chasov ');
read( chasov);
if chasov=9
then
begin
clrscr;
halt;
end;
write(' minutov ');
read( minutov);
write(' sekundov ');
read( sekundov);
clrscr;
for tekushchiy_sekund:=1
to sekundov+60*minutov+3600*chasov do
begin
if keypressed then
if readkey=#27
then halt;
delay(50000);
end;
sound(300);
readkey;
nosound;
end.
УГАДАЙТЕ
+158
if(typeof n!="number"&&(k==Number||!(n instanceof Number))||p.round(n)!=n||n==NaN||n==Infinity)return!1;
http://www.google-analytics.com/ga.js
Инженеры в Гугле знают толк в JavaScript'e.