|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
[C++]Define strano
Codice:
/* Caches aren't brain-dead on the intel. */ #define flush_cache_all() do { } while (0) #define flush_cache_mm(mm) do { } while (0) #define flush_cache_range(vma, start, end) do { } while (0) #define flush_cache_page(vma, vmaddr) do { } while (0) #define flush_dcache_page(page) do { } while (0) #define flush_icache_range(start, end) do { } while (0) #define flush_icache_page(vma,pg) do { } while (0) #define flush_icache_user_range(vma,pg,adr,len) do { } while (0) Fonte: kernel 2.6-test4 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Sono no-op, non definiscono nulla. Probabilmente sono inclusi in un blocco
#ifdef qualcosa #define flush_cache_all() do { } while (0) #else extern void flush_cache_all(); #endif Il ciclio do { } while (0) serve solo a poter usare la stessa punteggiatura come se la macro fosse una funzione.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
ho capito costruendomi un esempio:
Codice:
#include <iostream> #include <cstdio> #include <cstring> #define flush( NOME ) do { cout << NOME; } while ( strcmp(NOME, "$") != true ) using namespace std; int main() { flush( "A$\n" ); system( "PAUSE "); return 0; } Tnk cmq |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2002
Città: Morbegno (SO)
Messaggi: 1410
|
__________________
e' difficile cio' che non si conosce Tic Tac Andrew Morton, 15/02/2008 LKML:"`tmp' is an awful identifier, and renaming it to `temp' hardly improves it." |
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Kleidemos tu comunque mi sa che confondi il C con il C++ e sebbene a volte non rilevante, questa è una gravità atroce.
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ti riferisci a questo ?
strcmp(NOME, "$") != true |
![]() |
![]() |
![]() |
#7 | |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
Le funz del c nn possono essere usate in C++?? |
|
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Ma C != C++ => C++ = C + 1 |
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Ma l'importante nn come fai qulacosa(in linea di massima) ma il farlo
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#11 | |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
Se poi il codice deve essere elegante, ok...........ma prima deve funziare ![]() |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Un codice elegante molte volte può funzionare meglio di uno non elegante
![]() ![]() |
![]() |
![]() |
![]() |
#13 | |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Scrivere un esempio di punto in bianco non si può...bisogna confrontarlo con un altro codice...
|
![]() |
![]() |
![]() |
#15 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Codice:
List * node = NULL; if (node != NULL) { .... } Codice:
List * node = NULL; if (node) { .... } Secondo esempio: Codice:
int i; for (i = 0; i < 10; i++) { .... } Codice:
for (register int i = 0; i < 10; i++) { ... } Potrei continuare per ore ... |
|
![]() |
![]() |
![]() |
#16 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Continua qualche minuto che è very interesting
|
![]() |
![]() |
![]() |
#17 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sempre nell'esempio del for, addirittura c'è chi dice che fare
++i sia più efficiente che fare i++ cosa che non ho ami verificato.... Io ormai ho preso l'abitudine di fare ++i ed ormai lo faccio sempre... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:44.