-PR-
otaks

言語:c

ソース内の行末に\(エンマーク)があるのは
どのような意味なのでしょうか。
  • 回答数4
  • 気になる数0

Aみんなの回答(全4件)

質問者が選んだベストアンサー

  • 2007-06-02 12:00:34
  • 回答No.3
「論理行で一行に書かなければならない」ものを、
「物理行で複数に書く」際には必要です。

C/C++で「論理行で一行に書かなければならない」ものは、
プリプロセッサ命令(マクロ定義も含むがそれだけではない)ですから、
これらを複数行に渡って書くには必要です。

というわけで、マクロ定義でも「必ず必要」なわけではありませんし、
「マクロ定義だけ」に必要というわけでもありません。
# 現実には、大半がマクロ定義で使われるのですが。

またこれは、あくまで「必要」ということであって、
その他ほぼ全ての場所で改行をエスケープすることは「可能」です。
お礼コメント
ご回答ありがとうございました。
投稿日時 - 2007-06-02 18:46:20
  • 同意数0(0-0)
  • ありがとう数0
-PR-
-PR-

その他の回答 (全3件)

  • 2007-06-02 14:09:40
  • 回答No.4
> このバックスラッシュが必要(?)となるのは、 > マクロ定義だけでしょうか? ソースファイルのどこででも記述できますが、「必要」という意味では大多数がマクロ定義かと思います。 他に必要になりそうなのは、#if指令で長い式を記述する際に、複数行に分けたくなる場合ぐらいでしょうか? #if defined L && L != 0 \  || defined ...続きを読む
> このバックスラッシュが必要(?)となるのは、
> マクロ定義だけでしょうか?

ソースファイルのどこででも記述できますが、「必要」という意味では大多数がマクロ定義かと思います。
他に必要になりそうなのは、#if指令で長い式を記述する際に、複数行に分けたくなる場合ぐらいでしょうか?

#if defined L && L != 0 \
 || defined M && 0 < M && M < 10 \
 || defined N && N < 100

のような場合です。

ところで、行末に逆斜線を記述したつもりがないのに、コンパイラがそう解釈してしまっておかしくなることもあります。
例えば、

// 変換表
const int table[] = { ... }

のような記述があり、このソースコードがシフトJISで保存されているような場合です。シフトJISに対応していないコンパイラだと、「表」の2バイト目を逆斜線だと誤認し、2行目のconst int table[]のところまでコメントアウトされてしまいます。
他にも、#error指令の末尾にいわゆるダメ文字があった場合にも、このような現象に遭遇しがちです。
お礼コメント
ご回答ありがとうございました。
投稿日時 - 2007-06-02 18:46:01
  • 同意数0(0-0)
  • ありがとう数0
なるほど、役に立ったなど
感じた思いを「ありがとう」で
伝えてください
  • 2007-06-02 08:40:01
  • 回答No.2
円マークというか逆斜線(バックスラッシュ)が行末にあると、直後の行を連結して論理行を作ります。 具体的には、 foo \ bar という記述があれば、 foo bar という論理行を作ります。 ちなみに、論理行に対して最初のfoo \とかbarというのを物理行といいます。 ...続きを読む
円マークというか逆斜線(バックスラッシュ)が行末にあると、直後の行を連結して論理行を作ります。
具体的には、

foo \
bar

という記述があれば、

foo bar

という論理行を作ります。
ちなみに、論理行に対して最初のfoo \とかbarというのを物理行といいます。
補足コメント
このバックスラッシュが必要(?)となるのは、
マクロ定義だけでしょうか?
投稿日時 - 2007-06-02 10:31:12
お礼コメント
ご回答ありがとうございました。
投稿日時 - 2007-06-02 18:46:35
  • 同意数0(0-0)
  • ありがとう数0
なるほど、役に立ったなど
感じた思いを「ありがとう」で
伝えてください
  • 2007-06-02 00:13:36
  • 回答No.1
マクロ定義のところか? ならば、改行をエスケープしているのでしょう。 ...続きを読む
マクロ定義のところか?
ならば、改行をエスケープしているのでしょう。
補足コメント
確かマクロ定義だったと思います。
投稿日時 - 2007-06-02 10:32:13
お礼コメント
ご回答ありがとうございました。
投稿日時 - 2007-06-02 18:45:48
  • 同意数0(0-0)
  • ありがとう数0
なるほど、役に立ったなど
感じた思いを「ありがとう」で
伝えてください
  • 回答数4
  • 気になる数0
  • ありがとう数0
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください
  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう

関連するQ&A

-PR-
-PR-

その他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する
-PR-
-PR-
-PR-

特集


さらにツイートするだけで100円が当たる!

-PR-

ピックアップ

-PR-
ページ先頭へ