PDA

Visualizza la versione completa : [C] Errore di compilazione


Debiru
11-01-2006, 11:27
Salve gente, torno adesso adesso da un test che ho fatto per entrare (facciamo le corna) a lavorare in un'azienda di informatica.

Il test era di C, lo studiai un pochino 4-5 anni fa, per l'occorrenza ci avevano dato una guida di preparazione.

Solo che c'è una domanda che proprio non mi garbava.

Dato questo listato:

#include <stdio.h>
int* pA;
int a;
void main(){
pA=&a;
(*pA)=10;
}

C'erano quattro risposte e una era giusta, io ho scelto che usciva un errore di compilazione.

Analizzando il listato si nota che in effetti, a parte l'inutilità delle istruzioni, non c'è nulla che non vada...
Però c'era quel int* pA; che proprio non mi convinceva, doveva essere int *pA;

Consegnato il test me ne sono andato, in macchina ho cacciato il portatile e ho subito provato il listato con Visual C++ e ha funzionato.

Ora vi chiedo, è Visual C++ così materno da comprendere anche piccoli errori di trascrizione o C lo si scrive come a uno pare?
E le dichiarazioni di puntatori si possono scrivere sia tipo *variabile che tipo* variabile?

Grazie in anticipo

maraldo
11-01-2006, 11:53
Non c'è nessun errore e non è il Visual C++ che è buono,
ma int* p; è perfettamente uguale a int *p;

:ciauz:

anx721
11-01-2006, 12:06
Originariamente inviato da maraldo
Non c'è nessun errore e non è il Visual C++ che è buono,
ma int* p; è perfettamente uguale a int *p;

:ciauz:

confermo

Debiru
11-01-2006, 12:07
Sto a rosicà :dhò:

Però dai, sono infami, c'hanno dato una guida di tipo 60 pagine, in ogni esempio di listato viene sempre e soltato dichiarata "tipo *variabile", devi essere proprio infame dentro per fare il test scrivendo "tipo* variabile".

oregon
11-01-2006, 12:17
Beh ... non penso l'abbiano fatto apposta ...

Del resto il C e' - notoriamente - uno dei linguaggi piu' "liberi" da questo punto di vista ...

Debiru
11-01-2006, 12:20
Anche io non credo che l'abbiano fatto apposta, ma diciamo che in un processo d'appello se mi chiedono perchè ho risposto così diciamo che ho delle buone motivazioni per averlo fatto.

Cmq pensavo che il C fosse un pò più ristretto di vedute, in genere era il PHP che era molto elastico pur utilizzando il C...

anx721
11-01-2006, 13:02
presso quale azienda ahi fatto il test? Una grande azienda di consulenza informatica?

Non si tratta di essere di larghe vedute o meno, ma di sintassi: gli spazi bianchi tra gli elementi lessicali sono ignorati dal compilatore, e così come puoi scrivere:

int a = 1+2 ;
int a= 1 +2;
int a=1+2 ;

puoi indifferentemente scrivere

int *a;
int * a;
int*a;

o anche

int
*
a
;


per il resto se hai la possibilità di fare un colloquio ti sconsiglio di dire: "ma sul vostro manuale è sempre scritto cosi..." perchè a me daresti una cativa impressione, di uno che si basa solo sugli esempi o che comuqnue non ha approfondito. Meglio una scusa tipo: mi sono confuso, visto che non è un erore logico.

oregon
11-01-2006, 13:35
Originariamente inviato da Debiru
Anche io non credo che l'abbiano fatto apposta, ma diciamo che in un processo d'appello se mi chiedono perchè ho risposto così diciamo che ho delle buone motivazioni per averlo fatto.

Cmq pensavo che il C fosse un pò più ristretto di vedute, in genere era il PHP che era molto elastico pur utilizzando il C...

Mi associo a quanto ti ha detto anx e aggiungo che non riesco a trovare - con tutta la buona volonta' - alcuna buona motivazione.

In realta', mi e' capitato di fare dei test (dal punto di vista del docente) e ti assicuro che avrei giudicato peggio la tua scusa, piuttosto che l'errore in se stesso.

Debiru
11-01-2006, 17:49
Vabbhè, non è che gli vada a dire "ve pijasse un colpo m'avete fatto sbagliare voi" semplicemente direi che ho pensato che forse poteva essere un errore di scrittura voluto o qualcosa di simile, in effetti mi ci è voluto del tempo per decidermi sulla risposta...
Mah, boh, speriamo bene.

Si, comunque l'azienda è l'Accenture Technology Solutions, speriamo bene perchè di roba ne ho studiata molto, ma con ste magre di luna tutte le mie conoscenze non sono mai riuscito a metterle a frutto, se riuscissi finalmente a lavorare veramente almeno in un linguaggio di programmazione potrei alzare il mio livello di programmatore.

Purtroppo anche volendo fare qualcosa in proprio non c'è mai occasione di fare qualcosa di bello tosto e poi quando torno dal lavoro (dove purtroppo faccio più il tecnico che altro) non ho proprio voglia di lavorare al pc :(

Loading