私はトークンを疑問に思っているし、どのように彼らは、コンパイラによって評価、しかし、私は構文的に文が有効で作るための基本的なトークンとしてスペースを考慮されることはありませんスペースバイナリまたは単項演算子の評価への影響
例えば。
#include<stdio.h>
int main(){
int first=1,second=3;
int res=first+++++second;
printf("%d \n",res);
return 0;
}
は、次のエラーを与える:
rough3.c:7:17: error: lvalue required as increment operand int res=first+++++second;
しかし、単純に2つの接尾辞(++)とプレフィックス(++) の間で "" を追加することによっては、正常に動作するようです。
#include<stdio.h>
int main(){
int first=1,second=3;
int res=first++ + ++second;
printf("%d \n",res);
return 0;
}
は細かい印刷物値5 は私が知りたいこのquestionいうし、未定義の動作に見てきた作品:
コンパイラが発現との間にスペースが重複しているかいないと判断したのでしょうか?
これらの式を評価するために優先順位と結合性を併用するとどうなりますか?
[Maximal Munch](https://en.wikipedia.org/wiki/Maximal_munch)ルールを参照してください。 – molbdnilo
これは複製です。この質問は今週初めに尋ねられ、他の質問の重複として閉鎖された。 –
@molbdniloありがとうございます。 – OldMontMonk