Porque isso?

O que leva alguem em sã consciência escrever coisas desse tipo.

[code]
#include <stdio.h>

int qual_e_o_valor(int ***v)
{
return (***v);
}
void main(void)
{
int *nivel_1, **nivel_2, ***nivel_3, valor = 1001;

nivel_1 = &valor;
nivel_2 = &nivel_1;
nivel_3 = &nivel_2;
printf(“o valor é %d”, qual_e_o_valor(nivel_3));
}[/code]

Alternativas

a) - problemas mentais
b) - falta de sexo
c) - porque descobriu que é corno

quem me dizer ao certo vai ganhar um consolo de meio metro , o que acham?

Brincadeiras a parte, :smiley: o que imprime esse código imprime?
Só pra gente ver se o povo ta enferrujado com C ainda.

Eu fico com as alternativas A e B, mas queria acrescentar uma possivel D - por que descobriu que a mãe é a mais feia das que trabalham na zona.

Não tenho nem compilador C aqui pr atestar, mas meu palpite é que não dá pra saber o valor, já que ***nivel3 é um ponteiro pra ponteiro pra ponteiro pra 1001. Isso só vai ser resolvido em compile-time, e olha lá :slight_smile:

Tou MUITO errado? :smiley:

da para saber sim, ele imprime,
o valor é 1001
pelo seguinte:
nivel_1 = &valor;
nivel_2 = &nivel_1;
nivel_3 = &nivel_2;
nivel_1 é um ponteiro para valor (o operador & é de referencia, pega umaa referencia para alguma coisa)
nivel 2 um ponteiro para nivel 1 e nivel 3 um ponteiro para nivel 2
se dereferenciar isto 3 vezes, voltamos a ter valor :slight_smile:

Ja ouvi boatos que no source code do Photoshop tem isso:

void someFunction(char ******var)
{
    // ...
}

:?

Rafael

:shock:

E olha que a Adobe foi eleita um dos 100 melhores lugares pra se trabalhar…

fala serio, isso é bobeira, querem coisas de fritar o cérebro?
olhem http://www.ioccc.org/
The International Obfuscated C Code Contest

Um bom exemplo é esse programa, que compacta e descompacta arquivos de texto usando o método de huffman:

#define x char
#define z else
#define w gets
#define r if
#define u int
#define s main
#define v putchar
#define y while
#define t " A?B?K?L?CIF?MSP?E?H?O?R?DJG?NTQ?????U?V?????X???????Z????W??Y??"
 s (   )  {   x* c  ,  b[ 5  * 72   ]; u  a, e  ,  d   [  9
*9 *9 ]  ;    y  (w  ( b) ){            r  ( 0   [ b] -7 *
5        )    {  c  =     b    ;       y  (  (*    c  -  6
* 7 )* *  c )c =  c+ 1  ;   r ((   -0 )  [ c  ] &&  w (  b   +
  8 *  5*    3        ) && w          (b   +8      *5  * 6) )
  { a       =  0; y     (                  a       [     b  ]
 ) {    a [  d  ] = ! !    ( a[ b]   -   4 *8 )    ;  a  =   a +
1;  }   y (a   <  8 *  5      *  3   )  d      [   (   a ++ )
]  =      0       ; a        =       0;            y(    b  [
 a +  8  *3   *  5  ] )  {   d  [ a  ]   = a  [    d] +  !  !( b[
a+ 40  *  3     ]  -4  * 8) *  2    ;      ++  a   ;   }     a  =
 0       ;      y  (     a     [  b +      6          *  40 ]
)  {a [d ]  +=  !   !  ( b[ a   +    5 *  6  *    8  ] - 4   *
 8        ) *  4;   a =   a  + 1    ;} a=   0;   y  (a   <3 *8
   *5       )  {    r    (     a    [       d    ]  )    {  e
 =  1  ; y    (   e[ a  +  d] ){    *  ( d+ a+    e )   = a[ d
+e -  1] +(       d   [     a  +   e  ]  <<  (   3* e) )     ;e
 =    e           +  1  ;} a       =        a     +
e -  1     ; v( !! (  *  (  d+
  a)  %   (  64  )  - 12  *  5
  )             +  (  e
>  4   ) ?t [   e   >2 ?  2  :a    [ d   ]  ]   :6 *  8  +( t  [ d[
 a    ]/ 8     /8   ]  -4  )      %( 10 )  )    ;  r(  ! (2 [a
+  d] +  3  [d +       a  ]  )    )        v    (  4  *     8    )
 ;  }    a =   a  + 1 ; } v    (5 *  2     )  ;  }    z {c =b ;   e
=  0    ;     y  (*   c )  {   *   c +=   -  (* c    >   8 *     12
   )    *  32    ;      a         =  8       *  8       ;  r  (* c
 >=  48  &&*  c<8  *8   -6)  {*c  =(   * c  + 1
 )   %(  5    * 2  ) +  65   ;y(  --a  >0   &&*
c-  a[  t]   );   d[   (e   ++   )]   =4   ;(
 * (  d +  (e   ++)  ))=  07   ;}z  y(a  --  >1
 &&*  c-   t[a  ]);  d[   ( e  = e  +    1)  -
1]   =a   %8   ;y   (a   /=   8)   d[   (e  ++
 ) ]  =    a% 8   ; ++ c   ; *  (   e ++   +d )  =0
;} --  e   ;r    (         e >0  ) {a  =   1   ;
y          (  a<       8     )  {   c =       b  ;y
 ( c  <e +b  )   {  v  (  *     ( c  -    b + d  )&   a? 6  *7
:8       *  4     ) ;   c ++   ;} a=  a   +    a  ;    v  ( 2*
   5) ;  }  v    (  5*    2    )          ;   }} }}      }

Ok, mas isso eh feito de proposito. Agora, ha gente que tem umas manias muito ruins de programacao, seja nos nomes de variaveis, indentacao, estruturas, ou a melecada de tudo junto…

Rafael

parabens pro cara que fez isto,
sera que alguem consegue entender isto??

Tudo bem, esse que eu pus era fácil e até bonitinho.
Louds, dá uma olhadinha nesse aki agora.

#include <stdio.h>
#define k *(int*)
#define a if(
#define c ad()
#define i else
#define p while(
#define x *(char*)
#define b ==
#define V =calloc(1,99999)
#define f ()
#define J return
#define l ae(
#define n e)
#define u d!=
#define F int 
#define y (j)
#define r m=
#define t +4
F d,z,C,h,P,K,ac,q,G,v,Q,R,D,L,W,M;
E(n{
x D++=e;
}
o f{
a L){
h=x L++;
a h b 2){
L=0;
h=W;
}
}
i h=fgetc(Q);
}
X f{
J isalnum(h)|h b 95;
}
Y f{
a h b 92){
o f;
a h b 110)h=10;
}
}
c{
F e,j,m;
p isspace(h)|h b 35){
a h b 35){
o f;
c;
a d b 536){
c;
E(32);
k d=1;
k(d t)=D;
}
p h!=10){
E(h);
o f;
}
E(h);
E(2);
}
o f;
}
C=0;
d=h;
a X f){
E(32);
M=D;
p X f){
E(h);
o f;
}
a isdigit(d)){
z=strtol(M,0,0);
d=2;
}
i{
x D=32;
d=strstr(R,M-1)-R;
x D=0;
d=d*8+256;
a d>536){
d=P+d;
a k d b 1){
L=k(d t);
W=h;
o f;
c;
}
}
}
}
i{
o f;
a d b 39){
d=2;
Y f;
z=h;
o f;
o f;
}
i a d b 47&h b 42){
o f;
p h){
p h!=42)o f;
o f;
a h b 47)h=0;
}
o f;
c;
}
i{
e="++#m--%am*@R<^1c/@%[_[H3c%@%[_[H3c+@.B#d-@%:_^BKd<<Z/03e>>`/03e<=0f>=/f<@.f>@1f==&g!='g&&k||#l&@.BCh^@.BSi|@.B+j~@/%Yd!@&d*@b";
p j=x e++){
r x e++;
z=0;
p(C=x e++-98)<0)z=z*64+C+64;
a j b d&(m b h|m b 64)){
a m b h){
o f;
d=1;
}
break;
}
}
}
}
}
l g){
p g&&g!=-1){
x q++=g;
g=g>>8;
}
}
A(n{
F g;
p n{
g=k e;
k e=q-e-4;
e=g;
}
}
s(g,n{
l g);
k q=e;
e=q;
q=q t;
J e;
}
H(n{
s(184,n;
}
B(n{
J s(233,n;
}
S(j,n{
l 1032325);
J s(132+j,n;
}
Z(n{
l 49465);
H(0);
l 15);
l e+144);
l 192);
}
N(j,n{
l j+131);
s((e<512)<<7|5,n;
}
T y{
F g,e,m,aa;
g=1;
a d b 34){
H(v);
p h!=34){
Y f;
x v++=h;
o f;
}
x v=0;
v=v t&-4;
o f;
c;
}
i{
aa=C;
r z;
e=d;
c;
a e b 2){
H(m);
}
i a aa b 2){
T(0);
s(185,0);
a e b 33)Z(m);
i l m);
}
i a e b 40){
w f;
c;
}
i a e b 42){
c;
e=d;
c;
c;
a d b 42){
c;
c;
c;
c;
e=0;
}
c;
T(0);
a d b 61){
c;
l 80);
w f;
l 89);
l 392+(e b 256));
}
i a n{
a e b 256)l 139);
i l 48655);
q++;
}
}
i a e b 38){
N(10,k d);
c;
}
i{
g=k e;
a!g)g=dlsym(0,M);
a d b 61&j){
c;
w f;
N(6,g);
}
i a u 40){
N(8,g);
a C b 11){
N(0,g);
l z);
c;
}
}
}
}
a d b 40){
a g b 1)l 80);
r s(60545,0);
c;
j=0;
p u 41){
w f;
s(2393225,j);
a d b 44)c;
j=j t;
}
k r j;
c;
a!g){
e=e t;
k e=s(232,k n;
}
i a g b 1){
s(2397439,j);
j=j t;
}
i{
s(232,g-q-5);
}
a j)s(50305,j);
}
}
O y{
F e,g,m;
a j--b 1)T(1);
i{
O y;
r 0;
p j b C){
g=d;
e=z;
c;
a j>8){
r S(e,m);
O y;
}
i{
l 80);
O y;
l 89);
a j b 4|j b 5){
Z(n;
}
i{
l n;
a g b 37)l 146);
}
}
}
a m&&j>8){
r S(e,m);
H(e^1);
B(5);
A(m);
H(n;
}
}
}
w f{
O(11);
}
U f{
w f;
J S(0,0);
}
I y{
F m,g,e;
a d b 288){
c;
c;
r U f;
c;
I y;
a d b 312){
c;
g=B(0);
A(m);
I y;
A(g);
}
i{
A(m);
}
}
i a d b 352|d b 504){
e=d;
c;
c;
a e b 352){
g=q;
r U f;
}
i{
a u 59)w f;
c;
g=q;
r 0;
a u 59)r U f;
c;
a u 41){
e=B(0);
w f;
B(g-q-5);
A(n;
g=e t;
}
}
c;
I(&m);
B(g-q-5);
A(m);
}
i a d b 123){
c;
ab(1);
p u 125)I y;
c;
}
i{
a d b 448){
c;
a u 59)w f;
K=B(K);
}
i a d b 400){
c;
k j=B(k j);
}
i a u 59)w f;
c;
}
}
ab y{
F m;
p d b 256|u-1&!j){
a d b 256){
c;
p u 59){
a j){
G=G t;
k d=-G;
}
i{
k d=v;
v=v t;
}
c;
a d b 44)c;
}
c;
}
i{
A(k(d t));
k d=q;
c;
c;
r 8;
p u 41){
k d=m;
r m t;
c;
a d b 44)c;
}
c;
K=G=0;
l 15042901);
r s(60545,0);
I(0);
A(K);
l 50121);
k r G;
}
}
}
main(g,n{
Q=stdin;
a g-->1){
e=e t;
Q=fopen(k e,"r");
}
D=strcpy(R V," int if else while break return for define main ")+48;
v V;
q=ac V;
P V;
o f;
c;
ab(0);
J(*(int(*)f)k(P+592))(g,n;
}
int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
-- Dishonorable mention, Obfuscated C Code Contest, 1984. Author requested anonymity.

Esse veio daki http://fabrice.bellard.free.fr/otcc/
qual que é pior agora hein?
Há de se convir que quem faz isso tem sérios disturbios mentais, sexuais …e muito mais

querem exemplos reais?

  cd /usr/src/linux
  grep fuck * -R
  grep shit * -R

ou ainda olha qualquer um do arch/i386/boot

[quote=“louds”]querem exemplos reais?

  cd /usr/src/linux
  grep fuck * -R
  grep shit * -R

ou ainda olha qualquer um do arch/i386/boot[/quote]

caracas! impressionante

[code]
arch/mips/kernel/irixelf.c:#if 0 /* XXX No fucking way dude… /
arch/mips/kernel/irixioctl.c: * irixioctl.c: A fucking mess…
arch/mips/sgi-ip22/ip22-setup.c: * fucking with the memory controller because it needs to know the
arch/sparc/kernel/process.c: /
fuck me plenty /
arch/sparc/kernel/sunos_ioctl.c: /
Binary compatibility is good American knowhow fuckin’ up. /
arch/sparc64/kernel/process.c: /
fuck me plenty /
arch/sparc64/kernel/traps.c: /
Why the fuck did they have to change this? /
arch/x86_64/kernel/mtrr.c:/
Some BIOS’s are fucked and don’t set all MTRRs the same! /
Documentation/DocBook/kernel-locking.tmpl: If you don’t see why, please stay the fuck away from my code.
drivers/cdrom/sbpcd.c: blkdev_dequeue_request(req); /
task can fuck it up GTL /
drivers/char/drm/drmP.h:extern int DRM(release_fuck)(struct inode inode, struct file filp);
drivers/ide/cmd640.c: * These chips are basically fucked by design, and getting this driver
drivers/net/macsonic.c: fuck did SONIC_BUS_SCALE come from, and what was it supposed
drivers/net/sunhme.c:/
Only Sun can take such nice parts and fuck up the programming interface
drivers/net/sunhme.c: /
This card is fucking hot… /
drivers/scsi/NCR53C9x.c: * how bad the target and/or ESP fucks things up.
drivers/scsi/NCR53C9x.c: /
Be careful, we could really get fucked during synchronous
drivers/scsi/esp.c: * how bad the target and/or ESP fucks things up.
drivers/scsi/esp.c: * phase things. We don’t want to fuck directly with
drivers/scsi/esp.c: /
Be careful, we could really get fucked during synchronous
drivers/scsi/qlogicpti.h:/* Am I fucking pedantic or what? /
drivers/sound/aci.c:/
The four ACI command types are fucked up. [-:
fs/jffs/intrep.c: don’t fuck up. This is why we have
include/asm-parisc/spinlock.h: * writers) in interrupt handlers someone fucked up and we’d dead-lock
include/asm-sparc64/system.h: /* If you fuck with this, update ret_from_syscall code too. /
include/linux/netfilter_ipv4/ipt_limit.h: /
Ugly, ugly fucker. /
include/linux/netfilter_ipv6/ip6t_limit.h: /
Ugly, ugly fucker. /
lib/vsprintf.c: * Wirzenius wrote this portably, Torvalds fucked it up :slight_smile:
net/core/netfilter.c: /
James M doesn’t say fuck enough. /
net/ipv4/netfilter/ip_conntrack_core.c:/
This is fucking braindead. There is NO WAY of doing this without
net/ipv4/netfilter/ip_nat_snmp_basic.c: * (And this is the fucking ‘basic’ method).
net/ipv4/netfilter/ipt_limit.c: * Alexey is a fucking genius?
net/ipv6/netfilter/ip6t_limit.c: * Alexey is a fucking genius?

/code]

Ah, quale… isso eh comentario de codigo…

Rafael

Comentário de código num vale. Olhem esse e tentem saber o que imprime na tela. Num vale compilar logo de cara, senão perde a graça

[code]
#include “stdio.h”
#define e 3
#define g (e/e)
#define h ((g+e)/2)
#define f (e-g-h)
#define j (e*e-g)
#define k (j-h)
#define l(x) tab2[x]/h
#define m(n,a) ((n&(a))==(a))

long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L };
int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 };

main(m1,s) char s; {
int a,b,c,d,o[k],n=(int)s;
if(m1==1){ char b[2
j+f-g]; main(l(h+e)+h+e,b); printf(b); }
else switch(m1-=h){
case f:
a=(b=(c=(d=g)<<g)<<g)<<g;
return(m(n,a|c)|m(n,b)|m(n,a|d)|m(n,c|d));
case h:
for(a=f;a<j;++a)if(tab1[a]&&!(tab1[a]%((long)l(n))))return(a);
case g:
if(n<h)return(g);
if(n<j){n-=g;c=‘D’;o[f]=h;o[g]=f;}
else{c=’
'-‘’;n-=j-g;o[f]=o[g]=g;}
if((b=n)>=e)for(b=g<<g;b<n;++b)o[b]=o[b-h]+o[b-g]+c;
return(o[b-g]%n+k-h);
default:
if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f;
for(*s=a=f;a<e;) *s=(*s<<e)|main(h+a++,(char *)m1);

    }

}[/code]

Tipo, codigo pro ioccc não vale como exemplo! hehehehe
Olha o código perto dos comentarios, o driver pra sunhme é muito estranho…

Em C na maioria dos casos o alarde vem do fato que maioria não na acostumada a trabalhar usando ponteiros, aritmetica sobre eles e macros.

Alguem tem algum pedaço de código que é 1 gigante zona? Pontos extras pra quem conseguir misturar templates com macros em C++ ou simplesmente abusou d+ de macros. Implementei em c++ abusando da stl 1 programa bem bobinho de minimização de automatos para facul, tem umas 200 linhas, provavelmente se eu tivesse feito em java teria o dobro, oq é bem raro de acontecer.

template<class T>
void mul3T * b, T * e
{
    std::transform(b, e, b, std::bind1st(std::mul<T>(), 3));
}

ou ainda o clássico:

template<unsigned T>
struct factorial { enum { val = factorial<T - 1> * T; } };
template<> struct factorial<0> { enum { val = 0; } };

//ai so usar:
int res = factorial<10>::val;
//que te calcula fatorial de 10 em compile time

E ai, alguem descobriu o printa o código?
é tanta coisa pra tão pouco.

Tópico de sopas de letrinhas… minha mãe do céu… :shock:

ahuuahauha… definitivamente isso á que é um tópico para Assuntos gerais… auhauhah…

só tem maluco…