在C中使用(Underscore)有什么用?

时间:2016-12-04 11:34:51

标签: c identifier

我看到this code,我看到了这个_标志(在main()内)...
我从来没有看到这个标志在使用中,从未在任何地方阅读过 它用于什么?

2 个答案:

答案 0 :(得分:2)

下划线是C中变量和函数名称中允许使用的字符之一。它不常用,特别是在名称的开头或结尾。出于这个原因,它有时对以下内容很有用:

  • 在库中定义一个不太可能与同一范围内的其他名称冲突的变量名称;
  • 编写令人困惑的代码。

您的示例在第二个版本中使用它,例如通过定义一个简称为_的变量。

答案 1 :(得分:2)

您正在查看C代码混淆的示例。

程序员使用单个下划线_作为main函数的第二个参数的名称。

他使用main()的旧样式声明,有点等同于现代int main(int t, int _, char *a)

main的这个原型对于C标准的所有版本都是无效的,但可能在某些系统上起作用,main函数实际上使用期望类型的参数递归调用自身。程序可以通过测试t > 0来判断它是否是主要调用。这是不可移植的,因为不同原型的参数可能会有不同的传递。

混淆C是一款面向高级C程序员的游戏,可以达到惊人的复杂程度。

世界范围内存在竞争:The International Obfuscated C Code Contest

许多world class programmers花费了无数个小时来完善令人惊叹的代码宝石,包括Fabrice Bellard可以自行编译的compiler for a subset of C

还有另一款针对漫无目的的程序员的游戏:代码打高尔夫球。目标是生成最小的程序来解决给定的问题。 Stack Exchange有一个专门用于此活动的完整站点:https://codegolf.stackexchange.com/。更多浪费时间来享受乐趣和乐趣。