GCC不参与这次的趣味。
所有的教程都会告诉你,c++的变量名,类名,函数名都应该是字母或下划线开头的字母、数字、下划线组合,像这样:
int _abc123;
实际上,VisualStudio并不遵守这个规范,而是更宽泛,这些都可以:
#include <stdio.h> #include <tchar.h> #define 如果 if #define 打印 printf #define 返回 return #define 开始 { #define 结束 } #define 主函数 _tmain #define 整数 int //纯中文C++程序设计 整数 主函数(整数 参数, _TCHAR* argv[]) 开始 如果(1>0)打印("1"); 打印("Fyter 打印%d", 参数); 返回 0; 结束
这是一个可以在VS下编译通过的程序。
所以对于这样的编译器,变量名应该是:
不允许非可视字符,像tab, , ...
不允许运算符,像=-+*/...
不允许关键字,像const,int,class...
以外的任意字符
对于这样的编译器,虽然不规范,但这与微软的文化有关——全球化。变量名本就应该是表达一个意义,所以用什么文字应该是用户的权利。
VS的测试功能可以将单元测试中的命名空间/类名/函数名显示出来,我用了很多中文来描述就很直观了。