我已经在C中开发了一段时间,来自面向对象语言,如C++和Java,在使用像fread()和等标准库函数时strtok(),我开始怀疑:这些函数如何存储与状态相关的变量?
例如,strtok()对后续调用的行为不同,并fread()跟踪您在文件中的位置.这些信息必须存储在某个地方,并且在面向对象的语言中有范围构造,例如private或protected保护这些值免受不必要的修改,但据我所知,C没有这些.
那么,它们如何安全存储?或者它们实际上是全球性的并且可以在任何地方修改?当我编写带有需要存储类似状态信息的实用程序函数的头文件时,问题就产生了.在C中执行此类操作的"正确"方法是什么,以及如何在现有库中处理?