![]() |
1
51
原来的C语言是这样的事实 默认值任何变量或参数都定义为int类型 ,可能是另一个因素。换句话说,你可以有:
而不是
编辑 :实际上,正如Aaron提醒我们的那样,非常原始的语法应该是
因为“原型”只是后来才推出的。这大概是在每个人都记录了至少10个小时来追踪与类型相关的细微(而不是如此细微)错误之后。 |
![]() |
2
30
原因有几个:
更新: Jason S 询问来源。我想你可以把这些(除了“没关系”)从报纸上挖出来 dmr 在线的: The Development of the C Language . 您可能需要在通常的地方查找早期的语言bcpl和b。 |
![]() |
3
12
因为C是旧的,从一开始就是这样设计的。现在改变它为时已晚。 |
![]() |
4
11
|
![]() |
5
7
另一个原因可能是无符号类型不便于迭代。例如,此代码段向下迭代:
实际上,是一个错误。当我在上一次迭代中达到0时,它将直接进入4294967295(在32位机器上),循环将不会终止。
因此,我个人认为简单的ints对于迭代更为方便。当你切换到
|
![]() |
6
6
这个
Google C++ Style Guide
建议不要使用
这可能不是C的原始创造者的想法,但谁知道呢? |
![]() |
7
5
作为警告问题的解决方案,您可以这样做来抑制警告:
|
![]() |
8
4
这是一个有先见之明的设计决策,因为在Java中没有未签名的类型,所以将来更容易将C程序移植到Java。 |
![]() |
9
3
声明
|
![]() |
10
1
我知道这看起来很奇怪:
面试难题问题:有多少键盘会被用来打字
|
![]() |
11
0
通过将其设置为int,范围限制在1和int_max之间。这通常意味着,任何意外的强制转换或别名都不会使其超出意外环绕的范围。它还允许实现将整个负范围和0范围用于特定于系统的场景。 好吧,我只是编出来的。真正的原因是,这只是一个最初的C语言开发人员所做的一个任意的决定,直到现在还没有人真正认真考虑过。:) |
![]() |
12
0
只是一个简单的问题:你期望超过2个 三十一 (甚至超过2 十五 )命令行参数?我怀疑大多数操作系统都能处理这么多问题。 |
![]() |
13
-2
我认为它是为与C兼容而设计的,在C时代,人们并不太关心签名/未签名的正确性。 |
![]() |
Sky · 使用命令行在Mac上安装anaconda 2 年前 |
![]() |
slipperfox · 命令行提示符命令(想了解它的作用) 2 年前 |
![]() |
keypoint · shell动态响应终端提示 6 年前 |
![]() |
Harry · 如何在mac上通过grep命令从文件中找到新行代码? 6 年前 |
![]() |
frick · 获取调用EXE的命令行路径 6 年前 |
|
user6124024 · 共享单独命令/进程的属性 7 年前 |
![]() |
quixote · 如何在swi prolog中删除命令历史记录 7 年前 |