2017-01-11 8 views
-6

次のコードについては、'#define'をトークンと見なすことができますか?プリプロセッサディレクティブをトークンと見なすことはできますか?

#define int char 
main(){ 
    int i=65;    // i is initialized 
    printf("sizeof(i)=%d",sizeof(i)); 
} 
+0

宿題は –

+0

申し訳ありませんが試してみる必要がありますので、私はこの質問をトピックとして締め切りますが、これは宿題問題ではありません。 –

+0

それは2つの前処理トークン、 '#'と 'define'です –

答えて

1

ISO C規格が明示的c11 6.4で、例えば、トークンが存在するかを呼び出します:だから

token: 
    keyword 
    identifier 
    constant 
    string-literal 
    punctuator 
preprocessing-token: 
    header-name 
    identifier 
    pp-number 
    character-constant 
    string-literal 
    punctuator 
    each non-white-space character that cannot be one of the above 

、いいえ、#defineトークンではない、それは、2の前処理トークンです#およびdefineという識別子を含む。

6.4.2.1という識別子で、基本的には[_A-Za-z][_A-Za-z0-9]*と定義されています。

関連する問題