Mais um blog inútil.

Agosto 28, 2008

lulz do c

Filed under: Coding,Drama,OpenBSD — falso @ 23:56

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?

Comentar

widgeon
widgeon
widgeon
widgeon