2017-12-01 7 views
0

このコードではバックスラッシュの使用を認識できません。このシナリオではオペレータとして機能しますか?次のコードでは、バックスラッシュの意味は何ですか?

#define foreach(item, array) \ 
for(int keep = 1, \ 
     count = 0,\ 
     size = sizeof (array)/sizeof *(array); \ 
    keep && count != size; \ 
    keep = !keep, count++) \ 
    for(item = (array) + count; keep; keep = !keep) 
+1

これは行継続文字です。これは確かに重複していますが、見つけようとしています。 – Bathsheba

+0

@Bathsheba、マクロと同じ方法で通常のコードでバックスラッシュを使用できますか? –

+0

はい – Bathsheba

答えて

2

これは、1行に書いたのと同じ意味です。

#defineを記述するときは、定義の途中で改行を使用できません。しかし、すべてを1行にすると読みやすさが損なわれます。したがって、これは通常行われていることです。

C仕様状態ので、はい、それは、同様にコードの動作:直ちに改行文字が続くバックスラッシュ文字()の各インスタンスが削除される

物理ソース行をスプライシング論理的なソース行を形成する。

+0

通常のコードでもバックスラッシュを使用しても問題ありませんか? –

+0

@SandeepGusainはい、そうです。答えを更新しました。 – babon

関連する問題