lulz do c
Como já não blogo há muito tempo decidi vir falar sobre algo completamente inutil. Estava eu a tentar compilar o ircd da ptlink no OpenBSD com o pcc em vez do gcc, quando me deparo com um erro meio estranho...
pcc -I../include -g -O2 -DNDEBUG -c help.c pcc -I../include -g -O2 -DNDEBUG -c hvc.c hvc.c, line 100: return value required *** Error code 1
Achei estranho este tipo de erro, ate porque isto é compilavel em outras circunstancias.
int m_hvc(aClient *cptr, aClient *sptr, int parc, char *parv[]) { if(!IsPrivileged(sptr)) return; /* Linha 100 */ if(parc < 2) { if(MyClient(sptr))
Nunca tinha visto "return;" em nenhum codigo na vida, e fiquei a pensar como é que o gcc papa isto sem espinhas. Pus return 0; porque me pareceu bem e o resto do programa compilou bem, mas depois deu problemas a linkar portanto cagay naquilo. Fiz uma experiencia:
{:/home/bud/gcc:48} cat main.c #include <stdio.h> int sida() { return; } int main() { printf("%x--\n",sida()); return 0; } {:/home/bud/gcc:49} gcc -o sida main.c {:/home/bud/gcc:50} ./sida 3bbc634d-- {:/home/bud/gcc:51} ./sida 5357df90-- {:/home/bud/gcc:52} ./sida b3e1e9d9--
Belo random number generator :-P Com -Wall o gcc ja diz qualquer coisinha
main.c: In function `sida': main.c:4: warning: `return' with no value, in function returning non-void
Acho que supostamente isto nao devia funcionar? O dcoder teve me a dar umas dicas e disse que o msvc tambem comia os return;. Bastante inútil este post, hein?