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

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

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

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

23得票4回答
Clang使用哪个标准C库?是glibc、自己的还是其他的?

我相信glibc是gcc标准C库实现的名称。 但对于LLVM / Clang,我不确定。 我尝试使用Google搜索来查找它是否带有自己的整个标准C库的实现,或者它们是否也使用glibc。 令人惊讶的是,我能找到的只有一篇最近的文章,讨论了Google正在考虑为LLVM编写新的libc,但没有...

54得票6回答
“保留供任何用途”是什么意思?

注意:这是一个c问题,尽管我加入了c++,以防一些C++专家能够提供C++使用不同措辞的原因或历史背景。 在C标准库规范中,我们有这样的规范文本,C17 7.1.3 保留标识符(强调是我的): 所有以下划线和大写字母或另一个下划线开头的标识符始终保留供任何用途使用。 所有以下划线开头...

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

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

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

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

7得票1回答
为什么没有“unsigned wchar_t”和“signed wchar_t”类型?

char的符号未被标准化。因此有signed char和unsigned char类型。因此,处理单个字符的函数必须使用可以容纳signed char和unsigned char两种类型的参数类型(选定了int作为该类型),因为如果参数类型是char,则在以下代码中编译器将产生类型转换警告(如...

24得票4回答
getch()和getchar()有什么区别?

getch 和 getchar 函数之间的确切区别是什么?

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

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

43得票7回答
C标准是否保证缓冲区不会超出其空终止符而被访问?

在标准库的许多字符串函数中,如果提供了缓冲区,在各种情况下是否保证缓冲区不会被修改超出空字符终止符?例如:char buffer[17] = "abcdefghijklmnop"; sscanf("123", "%16s", buffer); 现在需要将 buffer 设置为 "123\0ef...