Articles of macro

Confuso sull’espansione della macro C e sull’aritmetica dei numeri interi

Possibile duplicato: Un indovinello (in C) Ho un paio di domande riguardo il seguente frammento: #include #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0])) int array[] = {23,34,12,17,204,99,16}; int main() { int d; for(d=-1;d <= (TOTAL_ELEMENTS-2);d++) printf("%d\n",array[d+1]); return 0; } Qui l’output del codice non stampa gli elementi dell’array come previsto. Ma quando aggiungo un typecast di (int) […]

A cosa servono le macro C?

Ho scritto un po ‘di C , e posso leggerlo abbastanza bene da avere un’idea generale di quello che sta facendo, ma ogni volta che ho incontrato una macro mi ha buttato completamente. Finisco per dover ricordare che cos’è la macro e sostituirla nella mia testa mentre leggo. Quelli che ho incontrato che erano intuitivi […]

Come generare una nuova riga in una macro cpp?

Come scrivo una macro cpp che si espande per includere le newline?

Quanto può essere grande un malloc in C?

Ho un malloc in C che è 26901 ^ 2 * sizeof (doppio) Questo mi ha fatto pensare quale può essere il più grande valore qui? Inoltre, avrei problemi a definire una macro per accedere a questo array 2D? #define DN(i,j) ((int)i * ny + (int)j) Perché questo sembra non funzionare per me – o […]

Swift: come usare PREPROCESSOR Flags (come `#if DEBUG`) per implementare le chiavi API?

In Objective-C è stato talvolta utile utilizzare costanti di stringa statiche per definire chiavi API alternative (ad esempio per distinguere tra le chiavi RELEASE e DEBUG per i pacchetti di analisi, come MixPanel, Flurry o Crashlytics): #if DEBUG static NSString *const API_KEY = @”KEY_A”; #else static NSString *const API_KEY = @”KEY_B”; #endif e poi… [Analytics […]

Tipo di ritorno statico di macro Scala

Quindi ho questa macro: import language.experimental.macros import scala.reflect.macros.Context class Foo class Bar extends Foo { def launchMissiles = “launching” } object FooExample { def foo: Foo = macro foo_impl def foo_impl(c: Context): c.Expr[Foo] = c.Expr[Foo](c.universe.reify(new Bar).tree) } Ho detto tre volte che voglio foo per restituire un Foo , eppure posso fare quanto segue (in […]

Quali sono le implicazioni della macro linux __user?

Speravo che qualcuno potesse spiegare le sfumature della macro __user usata nel sorgente del kernel linux. Prima di tutto, la macro: # define __user __attribute__((noderef, address_space(1))) Ora, dopo alcuni googling, ho letto che questa macro consente di designare un puntatore come appartenente allo spazio degli indirizzi utente e che non dovrebbe essere dereferenziato. Potrei mancare […]

Cosa significa #x all’interno di una macro C?

Ad esempio ho una macro: #define PRINT(int) printf(#int “%d\n”,int) So un po ‘qual è il risultato Ma come mai #int è repersent l’intera cosa? Mi dimentico di questo dettaglio. Qualcuno può gentilmente darmi un suggerimento? Grazie!

#Pragma è una volta parte dello standard C ++ 11?

Tradizionalmente, il modo standard e portatile per evitare inclusioni multiple di intestazione in C ++ era / è usare il #ifndef – #define – #endif schema di direttive pre-compilatore chiamato anche schema di macro-guardia (vedere lo snippet di codice sotto). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP … #endif Nella maggior parte delle implementazioni / compilatori (vedi immagine […]

Posso avere macro nei file di origine Java

Nel mio programma sto leggendo numeri interi da console molte volte. Ogni volta, ho bisogno di digitare questa linea. new Scanner(System.in).nextInt(); Sono abituato a C / C ++ e mi chiedo se posso definire qualcosa di simile #define READINT Scanner(System.in).nextInt(); e poi, in ogni posto nel mio programma java, posso leggere il modulo console come […]