Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Ah okay, I understand what you meant now. One thing however - if it is a macro, couldn't it just be:

  #define getc fgetc_or_similar
At least C89/90 only mentions that if it is a macro, it may evaluate arguments more than once (but then it may not, as in the above case).


Yes and no. Yes, that is a valid #define; but the following program must work:

    #include <stdio.h>
    #undef getc
    int main(void) {
        getc(stdin);
        return 0;
    }
so it cannot be implemented as only a macro.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: