Why does #define not require a semicolon?

前端 未结 7 1013
无人及你
无人及你 2020-11-27 21:03

I was writing some test code in C. By mistake I had inserted a ; after a #define, which gave me errors. Why is a semicolon not req

7条回答
  •  不知归路
    2020-11-27 21:35

    define is a preprocessor directive, and is a simple replacement, it is not a declaration.

    BTW, as a replacement it may contain some ; as part of it:

    // Ugly as hell, but valid 
    #define END_STATEMENT ;
    
    int a = 1 END_STATEMENT // preprocessed to -> int a = 1;
    

提交回复
热议问题