C中(下划线)的用途是什么?

what is the use of (Underscore) in C?

我看到了 this code 并且我看到了这个 _ 标志(在 main() 内)...
我从未见过这个标志在使用,也从未在任何地方读到过,
它有什么用?

这只是一个标识符,它是有效的。您可以单独使用 _ 作为标识符。

例如你可以这样做

int _;

这使得 _ 成为 int.

类型的变量

虽然该代码暴露了一个基本问题,因为它从程序内部调用 main()。这样做会调用未定义的行为。

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

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

您的示例在第二个版本中使用它,例如通过定义一个名为 _.

的变量

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

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

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

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

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

有一场世界范围的比赛:The International Obfuscated C Code Contest

Fabrice Bellard 的许多 world class programmers have spent countless hours polishing amazing code gems, including a compiler for a subset of C 可以自行编译。

漫无目的的程序员还有另一种游戏:打代码。目标是生成最小的程序来解决给定的问题。 Stack Exchange 有一个专门针对此 activity: https://codegolf.stackexchange.com/ 的完整站点。更多的时间浪费在娱乐和愉悦上。