我目前正在学习c并想知道如何实现标准库函数,例如
我在control click
函数上fgets
编辑了它,它带我到fgets
头文件中stdio.h
的函数原型声明。
但我希望看到fgets
是如何实现的,而不是它的函数原型。反正有没有看到它的内部实施?
答案 0 :(得分:2)
某些标准库实现的源代码(例如glibc
)可在线获取,您可以查找its fgets()
code。但是源代码通常不安装在开发PC上,除非您出于某种原因(例如,交叉编译器)构建自己的工具链。实际上,源代码的一部分通常是用汇编语言编写的。通常只在开发/目标PC上安装编译的目标文件。因此,您的IDE无权访问源,无法向您显示。其他标准库(如Microsoft的MSVCRT)是专有的,源代码不可用,只有编译库。你当然可以反汇编,但输出对你来说可能不是很有用。
一般来说,大多数(并非所有!)C / C ++程序员将标准库函数视为黑盒子,并依靠良好的参考文档来理解他们的行为。