Синтаксический сахар в C / C ++

Я изучал Ruby и обнаружил, что его ключевые слова «до» и «до» очень интересны. Поэтому я подумал, что это хороший способ добавить похожие ключевые слова в C / C ++. Вот что я придумал:

#define until(x)    while(!(x))
#define unless(x)   if(!(x))

Я ищу несколько предложений по этому поводу. Может ли кто-нибудь предложить лучшую альтернативу?

Вот пример программы, которую я написал, чтобы проиллюстрировать то, что я собирался сделать:

#include <stdio.h>
#include <stdlib.h>

#define until(x)    while(!(x))
#define unless(x)   if(!(x))

unsigned int factorial(unsigned int n) {
    unsigned int fact=1, i;
    until ( n==0 )
        fact *= n--;
    return fact;    
}

int main(int argc, char*argv[]) {
    unless (argc==2)
        puts("Usage: fact <num>");
    else {
        int n = atoi(argv[1]);
        if (n<0)
            puts("please give +ve number");
        else
            printf("factorial(%u) = %u\n",n,factorial(n));
    }
    return 0;
}

Было бы здорово, если бы вы могли указать мне на некоторые ссылки на аналогичные приемы, которые можно использовать на C или C ++.

31
задан MightyPork 9 May 2014 в 15:28
поделиться