2017-03-13 12 views
0

これらのマクロはGCCでのみ利用できますか?__FILE__、__LINE__の使用に互換性の問題はありますか?

  • __FILE__
  • __LINE__

いくつかの他のコンパイラを使ってコンパイルすることを期待しながら、これらを使用する際の制限事項はありますか?

+2

これらのマクロはC++標準で定義されています。すべてのコンパイラにはそれらが必要です。 –

+2

マクロはC++標準とC標準の両方で定義されています(最初のC標準より前ではCで広く使用できました)。つまり、あなたが手に入れる可能性のあるコンパイラ(プリプロセッサ)で利用できます。 –

答えて

3

標準的なマクロで、CおよびC++コンパイラ(C89、§3.8.8¶1、C99、§6.10.8¶1、C++ 98、§16.8¶1、C + +11,ibidem、C++ 14 ibidem)。もちろん、__FILE__の形式は、正確なコンパイラ/プラットフォームによって異なる場合があります。それでも、それらは#line指令(標準でも義務づけられています)によって制御できます。

関連する問題