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/ 的完整站点。更多的时间浪费在娱乐和愉悦上。
我看到了 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/ 的完整站点。更多的时间浪费在娱乐和愉悦上。