__isoc99_sscanf() 有啥作用?
Posted
技术标签:
【中文标题】__isoc99_sscanf() 有啥作用?【英文标题】:What does __isoc99_sscanf() do?__isoc99_sscanf() 有什么作用? 【发布时间】:2021-12-18 02:47:23 【问题描述】:这是 C 中的代码行:
void func_g(undefined4 pmt1)
int amt, elmt1;
uint elmt3[3];
amt = __isoc99_sscanf(pmt1, "%d %d", elmt1, &elmt3);
return;
__isoc99_sscanf 试图做什么?
【问题讨论】:
以两个下划线开头的函数名保留用于实现。这是编译器的内部函数。 您还应该看到this thread 根据名字,我猜是sscanf()
的C99兼容版本的代码。
@Barmar 仅供参考:***.com/questions/56444576/… 可能被认为是骗子——我会让其他人决定。
int ... elmt1; ... __isoc99_sscanf(pmt1, "%d %d", elmt1, &elmt3);
看起来不对。在 int *
预期的地方传递 int
? &elmt3
看起来也很狡猾,因为它不是 int*
。
【参考方案1】:
isoc99_sscanf
(和其他相关功能)于 2007 年推出,以符合C99
标准。作为引入 C99 支持的一部分,"sscanf"
被重定向到 "__isoc99_sscanf"
。这是编译器特定的语法 gcc 使用它。
该函数返回匹配成功的输入项数 和分配,它可以比规定的要少,甚至为零 早期匹配失败的事件。
【讨论】:
我相信这是特定于 glibc 的。最好说明您正在谈论的编译器/库。 我说的是 gcc。以上是关于__isoc99_sscanf() 有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章
未定义引用`__isoc99_sscanf@GLIBC_2.7'
`__import__('pkg_resources').declare_namespace(__name__)` 有啥作用?