![]() |
1
13
如果你是一个经验丰富的C程序员,你会意识到这段代码实际上并没有那么糟糕。它相对简单(对于C),而且速度非常快。它有三个问题:
问题#1很容易通过特殊情况解决。为了解决#2,我将代码分为两个函数,一个用于32位整数,另一个用于64位整数#3是有点难-我们必须改变接口,使完全线程安全。 以下是我的解决方案,基于此代码,但经过修改以解决这些问题:
说明:它在堆栈上创建一个本地缓冲区,然后用与初始代码相同的方法填充该缓冲区。然后,它将其复制到传递给函数的参数中,确保不会使缓冲区溢出。对于INT32_MIN,它还有一个特殊情况。如果原始缓冲区足够大,则返回值为0;如果缓冲区太小,且结果字符串被截断,则返回值为1。 |
![]() |
2
2
这不是特别简单,但如果你在一个你不能使用的系统上工作,我不会称之为WTF
注:有些图书馆
|
![]() |
3
1
这可能和我写它的方式非常接近。我能马上看出这个解决方案的唯一错误是,在LONG_MIN为-(LONG_MAX+1)的机器上,LONG_MIN不起作用,这是当今大多数机器的情况。我可以用
|
![]() |
4
1
口齿不清:
我很惊讶我能这么容易做到。我的口齿不清书的第一章还没读完。xD(或者我应该说,~:D) |
![]() |
5
1
|
![]() |
6
0
通常我会返回一个alloc'd缓冲区,这需要用户释放。这个添加是微不足道的。 |
![]() |
7
0
我觉得很无聊,于是用Perl实现了这个幼稚的实现。作品
|
![]() |
Alex Pander · cleaner代码的嵌套命名空间[已关闭] 6 年前 |
![]() |
Jamil Noyda · 导入模块的最佳方式Python[复制] 6 年前 |
![]() |
Samselvaprabu · 我们是否需要不惜任何代价避免重复? 7 年前 |
![]() |
user9549524 · 基于一列的值从二维矩阵中提取值 7 年前 |
![]() |
MedAl · 不使用try/catch处理异常 7 年前 |
![]() |
Declan McKenna · 特殊情况模式在Swift中是否多余? 7 年前 |