2016-03-25 2 views
-1

Я пытаюсь создать оболочку макроса вокруг функции, чтобы я мог сделать код более интуитивно понятным при чтении. Что-то вроде вместо звонка send_message_to_destination (m, d) написать отправить (m) в (d).использовать макросы для аргументов

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

Это можно сделать? Считаете ли вы, что это сделает код более читабельным или интуитивно понятным?

+2

Это редкое для макросов, чтобы сделать код более понятным, если вы используете их, чтобы изобрести язык. –

+3

Это на самом деле менее интуитивно понятное для любого программиста на C. Не пытайтесь изменить грамматику C, используя какой-то неясный способ. Если вы не хотите использовать синтаксис Си, вам может подойти другой язык. Если их нет, напишите сами, но не пробуйте это с помощью макросов. – Olaf

+0

Благодарим вас за отзыв, но из-за моего не очень хорошего английского языка я сам себя подавил. Мне нужна форма написания кода, который больше похож на естественный язык, и я хочу использовать его в C++. Я лично считаю, что лучше общаться с коммуникатором.send (message1) до (server1), чем с коммуникатором.send (mesage1, server1). –

ответ

0

Я согласен с комментариями (не очень хорошая идея), однако вы можете использовать что-то вроде этого. Помните, что предварительный процессор просто заменяет текст на ваши макросы. не

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

Нет там нет такого способа сделать это с макросами

Смежные вопросы