• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 1 voto(i) - 5 media
  • 1
  • 2
  • 3
  • 4
  • 5
Inizio nuova serie di tutorial sul C
#1
Tutorial
 
Rispondi
#2
Bella l'iniziativa ma hai spiegato male, sopratutto hai voluto citare le funzioni in un primo tutorial dove si da per scontato che uno non sappia nulla facendo solo fare confusione. Tra l'altro dichiarandola public
Codice:
public void ciao()
{
}
In C non è necessario, in quanto nel preprocessore C public e private sono definite come
Codice:
#define PUBLIC
ovvero nulla, in pratica come se non avesse significato.
Per capire meglio è come scrivere
Codice:
#define PUBLIC extern
in C le funzioni sono di default dichiarate come extern ovvero visibili all'esterno del file in cui sono dichiarate.
 
Rispondi
#3
What?! Premesso che non ho visto tutto il video, ho cercato solo la parte citata da Lorenz per vedere se dicevi qualcosa a riguardo. Sta roba:
Codice:
public void ciao()
{
}
Non è C. In C non esiste proprio la keyword public, esiste in C++ e comunque sia non si usa in quel modo.
A dire il vero anche la spiegazione di Lorenz è sbagliata: il C è case-sensitive quindi PUBLIC e public sono due cose completamente diverse e poi PUBLIC non è definito da nessuna parte nelle librerie standard. Potrei sbagliarmi, ma non credo, comunque son sicuro che non c'è né in stdlib.h e né in stdio.h (ho controllato).

Il fatto che devcpp ti faccia compilare quella roba ti dimostra che è meglio cambiarlo, ti insegna cose sbagliate. Prova codeblocks con le mingw.
 
Rispondi
#4
(04-06-2014, 09:24 PM)steve Ha scritto: What?! Premesso che non ho visto tutto il video, ho cercato solo la parte citata da Lorenz per vedere se dicevi qualcosa a riguardo. Sta roba:
Codice:
public void ciao()
{
}
Non è C. In C non esiste proprio la keyword public, esiste in C++ e comunque sia non si usa in quel modo.
A dire il vero anche la spiegazione di Lorenz è sbagliata: il C è case-sensitive quindi PUBLIC e public sono due cose completamente diverse e poi PUBLIC non è definito da nessuna parte nelle librerie standard. Potrei sbagliarmi, ma non credo, comunque son sicuro che non c'è né in stdlib.h e né in stdio.h (ho controllato).

Il fatto che devcpp ti faccia compilare quella roba ti dimostra che è meglio cambiarlo, ti insegna cose sbagliate. Prova codeblocks con le mingw.
Il mio discorso deriva da questo ->
Giusto la keyword public non è giusta ma il mio discorso vale per la keyword PUBLIC che come spiega il The Minix Book Operating Systems Design and Implementation a pagina 140 (qui) equivale a non metterlo
Citazione:PRIVATE is defined as a synonym for static. Procedures and data that are not referenced outside
the file in which they are declared are always declared as PRIVATE to prevent their names from
being visible outside the file in which they are declared. As a general rule, all variables and
procedures should be declared with a local scope, if possible. PUBLIC is defined as the null string.
An example from kernel/proc.c may help make this clear. The declaration
PUBLIC void lock_dequeue(rp)
comes out of the C preprocessor as
void lock_dequeue(rp)
which, according to the C language scope rules, means that the function name lock_dequeue is
exported from the file and the function can be called from anywhere in any file linked into the
same binary, in this case, anywhere in the kernel.
Ad ogni modo la keyword sia public sia PUBLIC non sono parte dell'ansi c quindi il discorso sopra non è applicabile.
Riassunto Steve ha ragione.
 
Rispondi
#5
Ok grazie di avermi corretto Big Grin
 
Rispondi
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  chiarimento sul c++ SuperMario64 2 1,077 27-05-2012, 07:18 PM
Ultimo messaggio: SuperMario64

Vai al forum:


Browsing: 1 Ospite(i)