gpt4 book ai didi

c - 内联函数调用静态内联函数

转载 作者:行者123 更新时间:2023-11-30 18:50:08 25 4
gpt4 key购买 nike

我不确定以下内容是否是 C 标准中的错误、GCC 中的错误,或者我只是误解了一些奇怪的行为,但以下内容提示 foo 的隐式声明:

static inline void foo(void);

inline void bar(void) {
foo();
}

有什么想法吗?谢谢。

注意:如果您想要正确的答案,请搜索我的答案,而不是其他答案,无论投票多少。

最佳答案

没关系,我已经找到了正确答案。

尽管代码对于单个翻译单元的情况具有逻辑意义,但标准似乎明确禁止这种极端情况(无论如何,这都是不好的做法,因为如果foo,重构可能会导致问题和 bar 被移动到单独的 TU——因为 foo 不会是 bar 的 TU 范围)。

C11 的 §6.7.4p3 说:

An inline definition of a function with external linkage shall not contain a definition of a modifiable object with static or thread storage duration, and shall not contain a reference to an identifier with internal linkage.

关于c - 内联函数调用静态内联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40798408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com