-
+135.2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
inline void clearbufshort (void *buff, unsigned int count, WORD clear)
{
if (!count)
return;
SWORD *b2 = (SWORD *)buff;
if ((int)b2 & 2)
{
*b2++ = clear;
if (--count == 0)
return;
}
do
{
*b2++ = clear;
} while (--count);
}
Наткнулся на такой вот шедевр в коде ZDaemon. Это аналог memset, только заполняет не байтами, а словами.
Кстати, там же рядом есть функция, запполняющая двойными словами:
inline void clearbuf (void *buff, int count, SDWORD clear)
{
SDWORD *b2 = (SDWORD *)buff;
while (count--)
*b2++ = clear;
}
Arseniy,
13 Февраля 2010
-
+137.6
- 1
w = (GtkWidget*)(*((int*)(lw->data)));
Объект для медитаций
mutanabbi,
13 Февраля 2010
-
+137.5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
void TWindowTID::SetStyle(GtkWidget* widget, const char *form, gint Red_, gint Green_, gint Blue_)
{
struct _GtkStyle *style;
GdkColor bg;
style=gtk_style_new();
bg.red = Red_;
bg.blue = Blue_;
bg.green = Green_;
if (form=="TEXT")
{
style->fg[GTK_STATE_NORMAL]=bg; //TEXT
}
else
if (form=="BORDER")
{
style->base[GTK_STATE_NORMAL]=bg; //BORDER
}
else
if (form=="ALL")
{
style->bg[GTK_STATE_NORMAL]=bg;
style->base[GTK_STATE_NORMAL]=bg; //BORDER
style->fg[GTK_STATE_NORMAL]=bg; //TEXT
}
else
if (form=="button")
{
style->bg[GTK_STATE_PRELIGHT]=bg;
style->base[GTK_STATE_PRELIGHT]=bg; //BORDER
style->bg[GTK_STATE_SELECTED]=bg;
style->base[GTK_STATE_SELECTED]=bg; //BORDER
}
else
{
style->bg[GTK_STATE_NORMAL]=bg;
}
style->font = gdk_font_load("-adobe-helvetica-*-r-*-*-12-*-*-*-*-*-*-*");
if ((GtkWidget *)widget!=NULL) gtk_widget_set_style((GtkWidget *)widget, style);
}
Сравнение строк умиляет
mutanabbi,
12 Февраля 2010
-
+96.5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
......
int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0,a10=0;
for (int i=0;i<arl->Count;i++)
{
if(arl[i]<0.1)
{
a1++;
}
if(arl[i]<0.2&&arl[i]>0.1)
{
a2++;
}
if(arl[i]<0.3&&arl[i]>0.2)
{
a3++;
}
if(arl[i]<0.4&&arl[i]>0.3)
{
a4++;
}
if(arl[i]<0.5&&arl[i]>0.4)
{
a5++;
}
if(arl[i]<0.6&&arl[i]>0.5)
{
a6++;
}
if(arl[i]<0.7&&arl[i]>0.6)
{
a7++;
}
if(arl[i]<0.8&&arl[i]>0.7)
{
a8++;
}
if(arl[i]<0.9&&arl[i]>0.8)
{
a9++;
}
if(arl[i]<1&&arl[i]>0.9)
{
a10++;
}
}
.....
определение количества элементов в каждом диапазоне. Было написано быстро и влоб, т.к ничего красивее придумать не смог, да и времени не было.
KoirN,
11 Февраля 2010
-
+136
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
#define alias long
#define int b
#define cat 2
alias int=cat;
#undef int
int a$(int b)
{
return 1;
}
main()
{
return a$(b)+1;
}
Здесь нет С++, зато есть... bash!
На что спорим, что код возврата программы будет 1?
nil,
05 Февраля 2010
-
+144.8
- 1
void updateEach(void *ptr, void *unused)
chipmunk update method
chipmunk - физический движок (типа под iPhone) на сях. Прелесть, правда?
FIZZER,
04 Февраля 2010
-
+138.1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
sprintf(cmd, "%supd_downloader -p upd_downloader\\bin %s %s -a %s",
#if defined(__unix__)
"./",
#else
"",
#endif
arg1,
option->arg2 ? arg2 : "",
#if defined(__i386__) || defined(_M_X86)
"i686"
#else
"x86_64"
#endif
);
res = run_command(cmd);
Обнаружил в коде. Типа портируемый код =) Да еще и sprintf() ...
del,
02 Февраля 2010
-
+134.8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
#include "stdafx.h"
#include "conio.h"
#include "time.h"
#include "stdlib.h"
#include "windows.h"
#include <iostream>
using namespace std;
void go()
{ int m[10],maxi,mini,max,min,temp;
srand(time(NULL));
for(int i=0;i<10;i++)
m[i]=rand()%30;
max=0;
for(int i=0;i<10;i++)
{if(m[i]>max) { max=m[i]; maxi=i;};
}
min=max;
for(int i=0;i<10;i++)
{if(m[i]<min) {min=m[i]; mini=i;};
}
for(int i=0;i<10;i++)
cout<<m[i]<<endl;
m[maxi],m[mini]=m[mini],m[maxi];
temp=m[maxi];
m[maxi]=m[mini];
m[mini]=temp;
cout<<"============"<<endl;
for(int i=0;i<10;i++)
cout<<m[i]<<endl;
cout<<"alala=="<<max<<endl;
cout<<"ololo=="<<min<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
go();
getch();
return 0;
}
хе-хе, друг написал , меняет макс и мин элементы местами)
Bor1k,
02 Февраля 2010
-
+100
- 1
- 2
- 3
- 4
- 5
- 6
- 7
#include <iostream>
int main(void)
{
for (int i=0;i<600000000;i++)
cout<<"Ten minuters";
//IT Works!
}
Реальный код с cyberforum. Задание звучало как "Написать таймер, каждые 10 минут выводящий какое-нибудь сообщение". Один умник написал такое нечто, от чего я просто впал в ступор.
darkcheg,
02 Февраля 2010
-
+136.7
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
BOOLEAN
KiCheckForAtlThunk (
IN PEXCEPTION_RECORD ExceptionRecord,
IN PCONTEXT Context
)
/*++
Routine Description:
This routine will determine whether an access violation was raised due to
an attempt to execute an ATL thunk in a no-execute, non-stack area.
If so, the thunk will be emulated and execution resumed.
Arguments:
ExceptionRecord - Supplies a pointer to an exception record.
Context - Supplies a pointer to a context frame.
Return Value:
TRUE - Context was updated to reflect the emulated ATL thunk, resume
execution.
FALSE - Not an ATL thunk, continue raising the exception.
--*/
//.........
//KiDispatchException:
//......
switch (ExceptionRecord->ExceptionCode) {
case STATUS_BREAKPOINT:
ContextFrame.Eip--;
break;
case KI_EXCEPTION_ACCESS_VIOLATION:
ExceptionRecord->ExceptionCode = STATUS_ACCESS_VIOLATION;
if (PreviousMode == UserMode) {
if (KiCheckForAtlThunk(ExceptionRecord,&ContextFrame) != FALSE) {
goto Handled1;
}
//................
Объявление KiCheckForAtlThunk (втыкать в комменты и название =)) ) Для тех кто в танке: исходники Windows, оконные классы ATL выделяют тупо в хипе кусок-переходник, который заменяет HWND, идущий первым параметром в оконную процедуру, на естественный, объектно-ориентированный this. Так вот, если у нас установлено где-то в реестре юзать защиту от выполнения данных, то, естественно, в хипе хер чего выполнишь, и возникнет #GP, и тут-то нам и придет на помощь KiCheckForAtlThunk =) Короче, ИМХО, вносить изменения в ядро, для того, чтобы нормально работала криво написанная юзермодная библиотека -- та еще жесть =) Все кто минусует -- не шарят :P
ISith,
30 Января 2010