2

$C/C++で文字を識別子の一部として使用しても安全ですか? このような、

int $a = 10;
struct $b;
class $c;

void $d();
4

3 に答える 3

5

いいえ; 一部のコンパイラでは非標準の拡張機能です。

于 2011-01-22T19:29:19.177 に答える
4

いいえ。C 標準では、またはを使用して指定された大文字と小文字の英字、数字、_および Unicode コードポイントの使用のみが保証されます(いくつかの例外があります)。特定のコンパイラは、拡張子として他の文字を許可する場合があります。ただし、これは非常に移植性がありません。(ISO/IEC 9899:1999 (E) 6.4.2.1, 6.4.3) さらに、Unicode コードポイント メソッドは、厳密に言えば (C99 で) 許可されているにもかかわらず、識別子では基本的に役に立たないことに注意してください。エディターでリテラルとして。\u (hex-quad)\U (hex-quad) (hex-quad)\uXXXX

于 2011-01-22T19:30:38.523 に答える
1

これは標準ではなく、Microsoft Visual Studio (私が知っている) だけが識別子に「$」文字を使用することさえできます。

したがって、コードを移植可能 (または他の人が読めるようにする) にしたい場合は、ノーと言います。

于 2011-01-22T19:30:40.953 に答える