04-06-2014, 02:35 PM
Valutazione discussione:
Inizio nuova serie di tutorial sul C
|
04-06-2014, 08:02 PM
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 publicIn C non è necessario, in quanto nel preprocessore C public e private sono definite come
ovvero nulla, in pratica come se non avesse significato.
Per capire meglio è come scrivere
in C le funzioni sono di default dichiarate come extern ovvero visibili all'esterno del file in cui sono dichiarate.
Codice:
public void ciao()
{
}
Codice:
#define PUBLIC
Per capire meglio è come scrivere
Codice:
#define PUBLIC extern
04-06-2014, 09:24 PM
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:
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.
Codice:
public void ciao()
{
}
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.
04-06-2014, 10:30 PM
(Questo messaggio è stato modificato l'ultima volta il: 04-06-2014, 10:42 PM da Lorenz.)
(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:Il mio discorso deriva da questo ->
Non è C. In C non esiste proprio la keyword public, esiste in C++ e comunque sia non si usa in quel modo.Codice:public void ciao()
{
}
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.
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 outsideAd ogni modo la keyword sia public sia PUBLIC non sono parte dell'ansi c quindi il discorso sopra non è applicabile.
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.
Riassunto Steve ha ragione.
05-06-2014, 10:29 AM
Ok grazie di avermi corretto
Discussioni simili | |||||
Discussione | Autore | Risposte | Letto | Ultimo messaggio | |
chiarimento sul c++ | SuperMario64 | 2 | 1,182 |
27-05-2012, 07:18 PM Ultimo messaggio: SuperMario64 |
Browsing: 1 Ospite(i)