在C++中命名int或char变量时,"n"或"ch"前缀是否为前缀?

Ada*_*idt 6 c++ variables naming prefixes

我目前正在阅读learncpp.com的C++教程,我发现他们的变量命名趋势让他们用"n"前缀命名int变量(即int nValue)和char变量的"ch"前缀(即char chOperation).这个行业中常见的东西现在应该成为一种习惯吗?

Mik*_*our 12

这是行业中常见的事情吗?

这种做法在二十或三十年前微软的某些部分很常见,因为对公司其他部门使用的一些更有用的惯例有误解(标记变量表明它们的目的,用弱类型语言,可以帮助避免各种类别错误).这两种约定在C++这样的强类型语言中都没有任何有用的用途:类型系统可以自动且更可靠地捕获这些错误.

它被其他人广泛使用,很久以后微软(大概)意识到它毫无意义并建议不要使用它,大概是认为模仿微软的习惯也可能效仿它们的成功.今天偶尔会看到,那些养成习惯并且从不质疑其实用性的人,以及那些优先考虑软件之上的风格指南的公司.

就个人而言,我发现它有用作为警告,代码可能包含更糟糕的恐怖.

我现在应该养成一种习惯吗?

它只会使代码更难以阅读,如果您在更改变量类型时忘记更新标记,则会产生误导.你应该养成写清晰易读的代码的习惯,而不是用神秘的符文.

免责声明:有关Microsoft的简短评论旨在提供历史背景,并非旨在成为Microsoft政策决策的授权帐户; 特别是"[微软]意识到[它]毫无意义"这句话的意思是"[微软的一些人]意识到[正在讨论的话题,在大多数情况下在现代C++中使用冗余类型标签]是毫无意义的"不是(作为一个评论员似乎已阅读)"[整个微软]实现[所有使用变量标记]是毫无意义的".所有意见都是我自己的意见,可能基于不完善的知识.

  • @IInspectable:我从未说过他们在二三十年前停止使用它.我只是说他们停止使用它,并建议人们不要使用它,在某些时候(在21世纪初,如果记忆服务).确切的时间表与我试图做的那一点无关(a)我不喜欢它和(b)其他人(包括今天的微软)也没有.我不是在争论是否应该在20世纪80年代使用它,因为我们都不会在20世纪80年代编写代码.问题是关于编写C++,而不是C. (3认同)