What can create a lexical error in C?

后端 未结 6 791
轻奢々
轻奢々 2021-01-02 17:37

Besides not closing a comment /*..., what constitutes a lexical error in C?

6条回答
  •  自闭症患者
    2021-01-02 18:28

    Basically anything that is not conforming to ISO C 9899/1999, Annex A.1 "Lexical Grammar" is a lexical fault if the compiler does its lexical analysis according to this grammar. Here are some examples:

    "abc // invalid string literal (from Ira Baxter's answer) (ISO C 9899/1999 6.4.4.5)
    
    'a // invalid char literal (6.4.4.4)
    

    where EOF is the end of the file.

    double a = 1e*3; // misguided floating point literal (6.4.4.2)
    
    int a = 0x0g; // invalid integer hex literal (6.4.4.1)
    
    int a = 09; // invalid octal literal (6.4.4.1)
    
    char a = 'aa'; // too long char literal (from Joel's answer, 6.4.4.4)
    
    double a = 0x1p1q; // invalid hexadecimal floating point constant (6.4.4.2)
    // instead of q, only a float suffix, that is 'f', 'l', 'F' or 'L' is allowed.
    
    // invalid header name (6.4.7)
    #include <
    #include ""a.h"
    

提交回复
热议问题