2016-03-25 6 views
-1

Ich versuche, einen Makro-Wrapper um eine Funktion zu erstellen, damit ich den Code intuitiver beim Lesen machen konnte. Etwas wie send_message_to_destination (m, d) zu schreiben senden (m) zu (d).Verwenden Sie Makros für Argumente

#include <stdio.h> 

void send_data_to(int data, int dest) 
{ 
    printf("Send %d to %d\n", data, dest); 
} 


#define send(data)to(destination) send_data_to(data, destination) 

int main() { 

    int data = 5; 
    int dest = 10; 

    send(data)to(dest); 
} 

Es ist möglich, dies zu tun? Glauben Sie, dass dies den Code lesbarer oder intuitiver macht?

+2

Es ist selten für Makros Code intuitiver zu machen, wenn Sie sie verwenden eine Sprache zu erfinden. –

+3

Dies ist in der Tat weniger intuitiv für jeden C-Programmierer. Versuchen Sie nicht, die Grammatik von C auf irgendeine obskure Weise zu ändern. Wenn Sie die C-Syntax nicht verwenden möchten, könnte eine andere Sprache für Sie besser geeignet sein. Wenn es keine gibt, schreibe deine eigene, aber versuche das nicht mit Makros. – Olaf

+0

Vielen Dank für Ihr Feedback, aber aufgrund meines nicht so guten Englisch habe ich mich selbst geärgert. Ich wollte eine Art, den Code zu schreiben, der mehr wie eine natürliche Sprache klingt, und ich möchte das in C++ verwenden. Ich persönlich finde es schöner, communicator.send (message1) an (server1) als communicator.send (message1, server1) anzurufen. –

Antwort

0

Ich stimme den Kommentaren zu (keine gute Idee), aber Sie können so etwas verwenden. Denken Sie daran, dass der Preprozessor nur einen Text durch Ihre Makros ersetzt.

#define to(destination) destination) 
#define send(data) send_data_to(data, 
0

Nein, es gibt keine Möglichkeit, dies zu tun mit MACROS