Aiutami a risolvere questo problema. C'è una macro e voglio aggiungere del codice al suo interno per restituire il risultato.
#define FOR3(a,b,c,loop) {for(int i=0; i<a; i++)\
for(int j=0; j<b; j++)\
for(int k=0; k<c; k++)\
{loop;}/*код хочу дописать в этом месте и вернуть результат но эта штука работает только как void*/}
È possibile aggiungere del codice nel posto indicato in modo da poter restituire il risultato della macro? Puoi aggiungere il codice; ho provato, ma se scrivi return, l'effetto non è previsto. Ho visto questo esempio
Aiutami a risolvere questo problema. C'è una macro e voglio aggiungere del codice al suo interno per restituire il risultato.
È possibile aggiungere del codice nel posto indicato in modo da poter restituire il risultato della macro? Puoi aggiungere il codice; ho provato, ma se scrivi return, l'effetto non è previsto. Ho visto questo esempio
qui nel thread dove il ritorno funziona.
Chiamare una funzione in cui si passa un puntatore a un'altra funzione (corpo del ciclo, per esempio)
int for3(int a, int b, int c, void(*loop)()) {
for(int i=0; i<a; i++)
for(int j=0; j<b; j++)
for(int k=0; k<c; k++)
loop();
return4;
}
...
void fn() {}
...
if ( for3(1, 2, 3, fn) ) printf("hellow world");
Chiamare una funzione in cui si passa un puntatore a un'altra funzione (il corpo di un ciclo, per esempio)
Non sapevo che fosse possibile farlo, ma il mio obiettivo è scrivere una complessa macro multilinea che eseguirà molti comandi, probabilmente una macro non può eseguire molti comandi e renderla una funzione non è possibile? A volte c'è la necessità di estrarre per esempio un ciclo da una funzione, mi chiedevo se è possibile, forse sto scrivendo cose senza senso.
Non sapevo che fosse possibile fare una cosa del genere, ma il mio compito è scrivere una complessa macro multilinea, che eseguirà molti comandi, probabilmente una macro non può eseguire molti comandi e farne una funzione è impossibile? A volte c'è la necessità di fare un ciclo da una funzione, mi chiedo se è possibile, forse sto scrivendo cose senza senso.
Non so quale sia il compito e se si sta scavando lì, ma a colpo d'occhio - un altro approccio:
In questo modo si può sostituire qualsiasi pezzo di funzione (non necessariamente il riempimento dell'array come nel mio caso) e istanziarlo come necessario.
Non sapevo che fosse possibile fare una cosa del genere, ma il mio compito è scrivere una complessa macro multilinea, che eseguirà molti comandi, probabilmente una macro non può eseguire molti comandi e farne una funzione è impossibile? A volte ho bisogno di fare un ciclo da una funzione, mi chiedo se è possibile, forse sto scrivendo cose senza senso.
Questa macro sarà nulla, per restituire un risultato da essa avete bisogno di un'espressione da calcolare, in altre parole dovete chiamare una funzione al suo interno, sono arrivato a questa conclusione.
Chiamare una funzione in cui si passa un puntatore a un'altra funzione (corpo del ciclo, per esempio)
Ho studiato un puntatore a funzione, ad essere onesti non ho mai capito a cosa serve, infatti invece di una variabile si può chiamare una funzione può venirmi stretto, un puntatore a funzione mi ricorda un overload o un polimorfismo.
Ho studiato il puntatore di funzione, ad essere sincero non ho capito a cosa serve, in pratica puoi chiamare una funzione al posto di una variabile forse sto facendo fatica, il puntatore di funzione è come un overload o polimorfismo.
Avete un qualche algoritmo all'interno del quale potete mettere un sub-algoritmo, per così dire, per "metterlo a punto" per risolvere un problema particolare. In sostanza, è un analogo delle funzioni virtuali. La cosa principale è che l'hai chiesto tu stesso, e ora non sai perché)), avevi una struttura, dentro la quale hai messo un ciclo.
funziona!
Grazie!
Aiutami a risolvere questo problema. C'è una macro e voglio aggiungere del codice al suo interno per restituire il risultato.
È possibile aggiungere del codice nel posto indicato in modo da poter restituire il risultato della macro? Puoi aggiungere il codice; ho provato, ma se scrivi return, l'effetto non è previsto. Ho visto questo esempio
qui nel thread dove il ritorno funziona.
Aiutami a risolvere questo problema. C'è una macro e voglio aggiungere del codice al suo interno per restituire il risultato.
È possibile aggiungere del codice nel posto indicato in modo da poter restituire il risultato della macro? Puoi aggiungere il codice; ho provato, ma se scrivi return, l'effetto non è previsto. Ho visto questo esempio
qui nel thread dove il ritorno funziona.
Chiamare una funzione in cui si passa un puntatore a un'altra funzione (corpo del ciclo, per esempio)
Chiamare una funzione in cui si passa un puntatore a un'altra funzione (il corpo di un ciclo, per esempio)
Non sapevo che fosse possibile farlo, ma il mio obiettivo è scrivere una complessa macro multilinea che eseguirà molti comandi, probabilmente una macro non può eseguire molti comandi e renderla una funzione non è possibile? A volte c'è la necessità di estrarre per esempio un ciclo da una funzione, mi chiedevo se è possibile, forse sto scrivendo cose senza senso.
Non sapevo che fosse possibile fare una cosa del genere, ma il mio compito è scrivere una complessa macro multilinea, che eseguirà molti comandi, probabilmente una macro non può eseguire molti comandi e farne una funzione è impossibile? A volte c'è la necessità di fare un ciclo da una funzione, mi chiedo se è possibile, forse sto scrivendo cose senza senso.
Non so quale sia il compito e se si sta scavando lì, ma a colpo d'occhio - un altro approccio:
In questo modo si può sostituire qualsiasi pezzo di funzione (non necessariamente il riempimento dell'array come nel mio caso) e istanziarlo come necessario.
Non sapevo che fosse possibile fare una cosa del genere, ma il mio compito è scrivere una complessa macro multilinea, che eseguirà molti comandi, probabilmente una macro non può eseguire molti comandi e farne una funzione è impossibile? A volte ho bisogno di fare un ciclo da una funzione, mi chiedo se è possibile, forse sto scrivendo cose senza senso.
È possibile, ma non così.
Si può, ma non così.
Questa macro sarà nulla, per restituire un risultato da essa avete bisogno di un'espressione da calcolare, in altre parole dovete chiamare una funzione al suo interno, sono arrivato a questa conclusione.
Chiamare una funzione in cui si passa un puntatore a un'altra funzione (corpo del ciclo, per esempio)
Ho studiato un puntatore a funzione, ad essere onesti non ho mai capito a cosa serve, infatti invece di una variabile si può chiamare una funzione può venirmi stretto, un puntatore a funzione mi ricorda un overload o un polimorfismo.
Ho studiato il puntatore di funzione, ad essere sincero non ho capito a cosa serve, in pratica puoi chiamare una funzione al posto di una variabile forse sto facendo fatica, il puntatore di funzione è come un overload o polimorfismo.
Avete un qualche algoritmo all'interno del quale potete mettere un sub-algoritmo, per così dire, per "metterlo a punto" per risolvere un problema particolare. In sostanza, è un analogo delle funzioni virtuali. La cosa principale è che l'hai chiesto tu stesso, e ora non sai perché)), avevi una struttura, dentro la quale hai messo un ciclo.