2011-01-22 55 views
2

使用$字符作爲C/C++標識符的一部分安全嗎? 像這樣,

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

void $d(); 

回答

4

否.C標準僅保證使用大寫和小寫英文字母,數字_和使用\u (hex-quad)\U (hex-quad) (hex-quad)(除少數例外)指定的Unicode代碼點。特定的編譯器可以允許其他字符作爲擴展名;然而這是非常不便的。 (ISO/IEC 9899:1999(E)6.4.2.1,6.4.3)還要注意的是,Unicode代碼點方法在標識符中基本沒有用,儘管它嚴格地說是允許的(在C99中),因爲它仍然顯示作爲文字\uXXXX在你的編輯器中。

+0

只是好奇,這部分關於在C++中的保證也是如此嗎? – Mehrdad 2011-01-22 21:40:35

+0

@Mehrdad,C++ 98標準指定了基本相同的定義,但不允許使用實現定義的字符和unicode代碼點 - 因此,實際上它更具有限制性 – bdonlan 2011-01-23 03:10:01

5

不;它在某些編譯器中是非標準的擴展。

1

這不是標準的,只有Microsoft Visual Studio(我知道)甚至允許標識符中的'$'字符。

所以,如果你想要你的代碼是可移植的(或其他人可讀),我會說不。

相關問題