2016-03-25 1 views
-1

J'essaie de créer une enveloppe de macro autour d'une fonction afin de rendre le code plus intuitif en lecture. Quelque chose comme au lieu d'appeler send_message_to_destination (m, d) pour écrire envoyer (m) à (d).utiliser des macros pour les arguments

#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); 
} 

Est-il possible de le faire? Pensez-vous que cela rendrait le code plus lisible ou plus intuitif?

+2

Il est rare que les macros pour rendre le code plus intuitive, si vous les utilisez pour inventer une langue. –

+3

Ceci est en fait moins intuitif pour n'importe quel programmeur C. N'essayez pas de changer la grammaire de C en utilisant n'importe quelle manière obscure. Si vous ne souhaitez pas utiliser la syntaxe C, un langage différent peut vous convenir. S'il n'y en a pas, écrivez le vôtre, mais n'essayez pas avec des macros. – Olaf

+0

Merci pour vos commentaires, mais en raison de mon pas si bon anglais, je me suis misxpressed. Je voulais une forme d'écriture du code qui ressemble plus à du langage naturel et je veux l'utiliser en C++. Personnellement, je pense qu'il est plus agréable d'appeler communicator.send (message1) à (serveur1) que communicateur.send (mesage1, server1). –

Répondre

0

Je suis d'accord avec les commentaires (ce n'est pas une bonne idée), cependant, vous pouvez utiliser quelque chose comme ça. Rappelez-vous que le pré-processeur fait juste un remplacement de texte avec vos macros.

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

Non, il n'y a pas une telle façon de le faire avec MACROS