$
文字をC/C++の識別子の一部として使用しても安全ですか? このように、
int $a = 10;
struct $b;
class $c;
void $d();
$
文字をC/C++の識別子の一部として使用しても安全ですか? このように、
int $a = 10;
struct $b;
class $c;
void $d();
いいえC標準は、大文字と小文字の英字、数字、_
の使用を保証し、およびUnicodeコードポイントは、(いくつかの例外を除いて)\u (hex-quad)
又は\U (hex-quad) (hex-quad)
を使用して指定しました。特定のコンパイラは、他の文字を拡張子として許可することがあります。しかし、これは非常に移植性がありません。 Unicodeコードポイント方法は、厳密に言えば(C99では)まだ表示されているにもかかわらず、識別子では基本的に役に立たないことに注意してください(ISO/IEC 9899:1999(E)6.4.2.1、6.4.3)あなたのエディタにリテラル\uXXXX
として。
いいえ。いくつかのコンパイラでは非標準拡張です。
これは標準ではなく、Microsoft Visual Studio(私が知っている)だけでも識別子に '$'文字を使用することさえできます。
コードをポータブル(または他の人が読むことができる)にしたい場合は、いいえと言います。
gcc(プラットフォームによってデフォルトで有効または無効)、VMS用Digital Cコンパイラ(VMSではシステムライブラリにアクセスする必要があります)。 – AProgrammer
ちょうど不思議なことですが、この部分はC++でも保証されていますか? – Mehrdad
@Mehrdad、C++ 98標準では、実装定義の文字とUnicodeコードポイントが許可されていない点を除いて、基本的に同じ定義を指定しています - したがって、事実上より限定的です – bdonlan
ああ、大丈夫です! :) – Mehrdad