7得票3回答
strtol和strtoul有什么区别?

我在使用C语言的 strtol 函数时遇到了一些意外的结果。 下面是示例程序: #include <string.h> #include <stdio.h> #include <stdlib.h> int main() { printf...

10得票2回答
为什么stdlib.h的abs()函数家族返回有符号值?

man页中指出了这种情况的负面影响: 注意事项 尝试获取最小负整数的绝对值是未定义的。 为什么会这样?有何最佳解决方案可以避免未定义行为?我是否必须采取以下措施:unsigned uabs(signed val) { return val > 0 ...

66得票2回答
为什么一些内置的Python函数只有pass关键字?

我想查看math.py的函数实现,但是当我在PyCharm中打开文件时,发现所有的函数都是空的,并且只有一个简单的pass。例如:def ceil(x): # real signature unknown; restored from __doc__ """ ceil(x) ...

11得票4回答
有没有类似于strtol的函数,它不需要以空字符结尾的字符串作为参数?

是否有类似于strtol的标准C函数,可以接受一个非空结束字符串的char*和长度作为参数? 我知道我可以将字符串复制到一个null-terminated区域,但出于效率考虑,这是不可取的。

13得票2回答
“getenv...函数...可能不安全”- 真的吗?

我正在使用MSVC编译一些使用标准库函数(如getenv(),sprintf等)的C代码,并将/W3设置为警告。 MSVC告诉我:   'getenv':此函数或变量可能不安全。请考虑改用_dupenv_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。 问题: ...

64得票1回答
为什么没有int128_t类型?

有许多编译器提供128位整数类型,但我使用的所有编译器都没有提供int128_t这个typedef。为什么呢? 据我所知,标准: 保留了int128_t作为此目的的保留名称 鼓励实现提供此类类型并提供typedef 强制要求此类实现至少提供一个128位的intmax_t (而且,我不...

8得票4回答
什么时候printf()和scanf()函数被静态或动态链接到应用程序中?

当一个C程序被编译时,它会按照预处理器、编译器、汇编器和链接器的顺序进行处理。链接器的主要任务之一是使库函数的代码可用于您的程序。链接器可以以静态或动态的方式链接它们。 stdio.h只包含声明,没有定义。我们只在程序中包含stdio.h来告诉编译器函数的返回类型和名称,例如printf()...

31得票4回答
当n=5时,使用我的编译器和操作系统,为什么pow(n,2)返回24?

#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int n,i,ele; n=5; ele=pow(n,2); printf("%d...

18得票8回答
strncmp相比strcmp的优势是什么?

似乎通常推荐使用 strncmp 而不是 strcmp,这有什么优点?我认为这可能与安全有关。如果是这种情况,那么如果其中一个输入字符串已知为文字常量,例如 "LiteralString",它是否仍然适用? 更新: 我的意思是在需要比较整个字符串的相同用户场景下,可以使用如下的 strncm...

7得票1回答
C标准库中的任何函数是否会隐式地使用 `stderr`?

C语言规范要求所有C程序都有三个可用的流(stream): stdout、stdin和stderr。 用户可以根据自己的需要使用这些流,例如: fprintf(stdout, "lol"); fputs("oops", stderr); fgets(buffer, 20, stdin); ...