C/C++
#1
Posted 14 March 2010 - 00:10
#2
Posted 14 March 2010 - 00:47
0 = inactiv, închis, oprit, stins, în pauză, acces interzis, cale blocată, indisponibil (în tehnică)
1 = contratriul lui 0 (în tehnică)
#3
Posted 14 March 2010 - 01:07
#4
Posted 14 March 2010 - 01:32
0 = Nu dă dreptul ca acea acțiune să fie efetuată, sau acel atribut să fie pus în pratică și să devină vizibil.
1 = Dă dreptul ca acea acțiune să fie efetuată, sau acel atribut să fie pus în pratică și să devină vizibil.
0 = mai poate însemna că atributul să își efectueze acțiunea, undeva în spatele cortinei, (cazuri destul de rare după părerea mea).
#5
Posted 14 March 2010 - 11:03
Sau spre ex in cazul (if(f="in.txt")==NULL)? Daca deschiderea fisierului se realizeaza corect expresia respectiva ia valoarea 1? Am inteles eu corect?
#6
Posted 14 March 2010 - 11:13
Revenind la topic, are mai multe întrebuințări, în funcție de context. Vezi Wikipedia și cplusplus.com.
#7
Posted 14 March 2010 - 11:16
http://www.daniweb.c...read183432.html
este folositoare impreuna cu functia srand(time(NULL)); pentru a crea numere random,daca folosesti rand() va avea aceasi serie de nr aleatoare de fiecare data.
if(f="in.txt")==NULL verifica daca nu poate deschide acel fisier,iar intre acolade in mod normal ar urma mesajul cu eroarea.
Edited by boboc, 14 March 2010 - 11:17.
#8
Posted 14 March 2010 - 11:20
#9
Posted 14 March 2010 - 11:24
În time(NULL), funcția time() nu poate fi chemată fără argument. Ca să nu dea eroare, i se pasează NULL și este folosită valoarea asta de către funcție. Mai multe aici: cplusplus.com. Ai mai putea face și tu un program în care să folosești doar time(). Va da eroare la compilare. Al doilea caz e cam vag.Asta stiam si eu despre null, doar ca nu inteleg care e rolul lui in anumite functii. Spre exemplu time(null) ce face? Am gasit utilizarea aceasta intr-o carte si nu e explicat si ce realizeaza.
Sau spre ex in cazul (if(f="in.txt")==NULL)? Daca deschiderea fisierului se realizeaza corect expresia respectiva ia valoarea 1? Am inteles eu corect?
Edited by XLR3204S, 14 March 2010 - 11:25.
#10
Posted 14 March 2010 - 11:35
Cel de-al doilea caz se refera la deschiderea unui fisier. Si intrebarea era daca deschiderea fisierului returneaza valoarea 1 daca deschiderea s-a facut cu succes.În time(NULL), funcția time() nu poate fi chemată fără argument. Ca să nu dea eroare, i se pasează NULL și este folosită valoarea asta de către funcție. Mai multe aici: cplusplus.com. Ai mai putea face și tu un program în care să folosești doar time(). Va da eroare la compilare. Al doilea caz e cam vag.
#11
Posted 14 March 2010 - 11:53
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode)
Description
Opens file filename and associates a stream and mode to it. Returns a stream or NULL if the function fails.
Modes
"r" "read only"
"w" "create and open for writing"
"a" "append, open or create"
"r+" "open for update, read or write"
"w+" "create for update"
"a+" "append, open or create"
Example
FILE *ptr = NULL;
char fname[] = "my_file.txt";
if ((ptr = fopen(fname, "r")) != NULL)
{
program statement;
#12
Posted 14 March 2010 - 12:10
#13
Posted 14 March 2010 - 17:54
@Eugen Mihalache ce zici tu este diferența dintre valorile logice, adică în ce spui tu, 0 = false; 1 = true. N-are legătură cu macro-ul NULL.
Într-o oare care măsură ai dreptate. Și 'macRou' ce înseamnă?
Un pic de off topic.
Dar pănă acum, din explicațiile pe tematica voastră de maisus, eu nu am înțeles care e treaba cu NULL. Link-uri pot da și eu destule de pe net. Dar așa vrea să văd pe cineva care știe să explice (ca la orbeți frate), de la cap la coadă o treabă la care crede că se pricepe. DA, documentație este destulă, numai timp să ai. Iar eu cel puțin când apelez la forum, apleze fiindcă nu am timp să mă documentez în de-aproape despre problematica mea. Iar în speranța și cu 'riscul' , să primesc o informație validă o ba, clară și să o pot practica sau nu. Mă adresez vouă. La o adică, dacă avem cărțile în față, consider că toți suntem profesioniști. Nu vreau să creez tensiune. Doamen ferește. Dar vreau să aduc la cunoștință unele idei general valabile.
Edited by Eugen Mihalache, 14 March 2010 - 17:57.
#14
Posted 14 March 2010 - 18:06
Într-o oare care măsură ai dreptate. Și 'macRou' ce înseamnă?
Un pic de off topic.
Dar pănă acum, din explicațiile pe tematica voastră de maisus, eu nu am înțeles care e treaba cu NULL. Link-uri pot da și eu destule de pe net. Dar așa vrea să văd pe cineva care știe să explice (ca la orbeți frate), de la cap la coadă o treabă la care crede că se pricepe. DA, documentație este destulă, numai timp să ai. Iar eu cel puțin când apelez la forum, apleze fiindcă nu am timp să mă documentez în de-aproape despre problematica mea. Iar în speranța și cu 'riscul' , să primesc o informație validă o ba, clară și să o pot practica sau nu. Mă adresez vouă. La o adică, dacă avem cărțile în față, consider că toți suntem profesioniști. Nu vreau să creez tensiune. Doamen ferește. Dar vreau să aduc la cunoștință unele idei general valabile.
Spre exemplu time(null) ce face? Am gasit utilizarea aceasta intr-o carte si nu e explicat si ce realizeaza.
Iar acum ca să explic ca la proști (sau mă rog, unul), că acolo ne îndreptăm:Ca o sugestie, învață-te să te folosești de online references-urile limbajelor de programare folosite. Nimeni n-o să țină minte de pe rost 32894792837 funcții, dar un programator bun va avea în reflex folosirea documentațiilor online. Cred că ți s-ar clarifica multe aspecte dacă ai citi documentația funcțiilor în cauză.
Ea a întrebat ce face time() cînd argumentul este NULL. Eu i-am dat link spre cplusplus.com. Acolo scrie, citez,
Cu alte cuvinte, exact ce voia ea să știe. Ba chiar i-am spus să cheme funcția time() fără argument într-un program, și va vedea că îi dă eroare. Deci acel null pointer este macro-ul NULL. Ce am spus eu mai sus se aplică în general. Am impresia că tu cam vorbești ca să te afli în treabă, și îmi pare rău pentru tine. Sau poate ai o "schemă cognitivă" și pentru a învăța pe de rost un număr uriaș de funcții dintr-un număr de, să zicem, 5 limbaje de programare. Și îmi pare rău, dar din post-ul tău de mai sus, numai că nu vrei să creezi tensiune nu reiese...Pointer to an object of type time_t, where the time value is stored.
Alternativelly, this parameter can be a null pointer, in which case the parameter is not used, but a time_t object is still returned by the function.
Edited by XLR3204S, 14 March 2010 - 18:09.
#15
Posted 14 March 2010 - 19:08
Bun și NULL în fond și la urma urmei în acest macrou de 'timp' nu are statutul de 'PAUZĂ' cum am spus la început?
#16
Posted 14 March 2010 - 19:40
Îmi cer scuze pentru insultă, mă aprind ușor, iar de două ori am intrat în conflict pentru că post-urile îmi sunt citite printre rînduri, după cum am mai scris și în celălalt thread.
#17
Posted 14 March 2010 - 19:47
#include <time.h>
time_t time(time_t *t)
Description
Returns the current calendar time. If t is not NULL, the return value is also assigned to *t. Returns -1 if the time is not available.
Example
time_t current_time;
time_t time_value;
time_value = time(¤t_time);
#18
Posted 18 March 2010 - 02:39
#19
Posted 18 March 2010 - 10:08
3. An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.55) If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.
55) The macro NULL is defined in <stddef.h> (and other headers) as a null pointer constant; see 7.17.
Se poate observa dupa trecerea prin preprocesor ca NULL e inlocuit de "(void *)0":
cristi:tmp diciu$ cat test.c #include <stdio.h> int main() { char * t1 = NULL; } cristi:tmp diciu$ gcc -E test.c | grep "char .* t1" char * t1 = ((void *)0);
2/ nil, nu Nil este echivalentul lui NULL in Objective-C.
Si nil este inlocuit tot de preprocesor:
cristi:tmp diciu$ cat test.m #import <Cocoa/Cocoa.h> int main() { id a = nil; } cristi:tmp diciu$ gcc -E test.m | grep "id a.*=" id a = ((void *)0);
3/ Intrebare initiala - la ce foloseste constructia de tip if(f="in.txt")==NULL este gresita.
Mai probabil se referea la constructia de verificare a deschiderii cu succes a unui fisier, i.e.:
FILE * f; if((f=fopen("in.txt", "r")) == NULL) printf("Error opening file for reading");
constructia e varianta mai scurta a:
FILE * f; f = fopen("in.txt", "r"); if(f == NULL) printf("Error ...");
si nu are nici o legatura cu logica booleana.
Pur si simplu FILE *-ul intors de fopen este NULL atunci cand nu se poate deschide fisierul.
Varianta cea mai scurta se foloseste de faptul ca NULL e zero, si ca in C zero e evaluat false si orice non-zero e evaluat true dar in acest caz efectul if-ului se inverseaza:
FILE * f; if((f=fopen("in.txt", "r"))) { //daca s-a ajuns aici fisierul s-a deschis pentru ca [i]f[/i] a fost non-zero, adica non-NULL }
#20
Posted 18 March 2010 - 13:33
1/ In C este acceptat doar NULL (standardul C99, 6.3.2.3):
3. An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.55) If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.
55) The macro NULL is defined in <stddef.h> (and other headers) as a null pointer constant; see 7.17.
Se poate observa dupa trecerea prin preprocesor ca NULL e inlocuit de "(void *)0":cristi:tmp diciu$ cat test.c #include <stdio.h> int main() { char * t1 = NULL; } cristi:tmp diciu$ gcc -E test.c | grep "char .* t1" char * t1 = ((void *)0);
2/ nil, nu Nil este echivalentul lui NULL in Objective-C.
Si nil este inlocuit tot de preprocesor:cristi:tmp diciu$ cat test.m #import <Cocoa/Cocoa.h> int main() { id a = nil; } cristi:tmp diciu$ gcc -E test.m | grep "id a.*=" id a = ((void *)0);
3/ Intrebare initiala - la ce foloseste constructia de tip if(f="in.txt")==NULL este gresita.
Mai probabil se referea la constructia de verificare a deschiderii cu succes a unui fisier, i.e.:FILE * f; if((f=fopen("in.txt", "r")) == NULL) printf("Error opening file for reading");
constructia e varianta mai scurta a:FILE * f; f = fopen("in.txt", "r"); if(f == NULL) printf("Error ...");
si nu are nici o legatura cu logica booleana.
Pur si simplu FILE *-ul intors de fopen este NULL atunci cand nu se poate deschide fisierul.
Varianta cea mai scurta se foloseste de faptul ca NULL e zero, si ca in C zero e evaluat false si orice non-zero e evaluat true dar in acest caz efectul if-ului se inverseaza:FILE * f; if((f=fopen("in.txt", "r"))) { //daca s-a ajuns aici fisierul s-a deschis pentru ca [i]f[/i] a fost non-zero, adica non-NULL }
Multumesc pentru lamuriri. Stiu ca gresisem codul, nu am fost atenta. Oricum am inteles ideea . Mersi
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users