gpt4 book ai didi

c - 隐式声明警告 : What are the built-in functions?

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:50 24 4
gpt4 key购买 nike

提问界面标记了许多“可能已经有您的答案的问题”,但我已尝试进行尽职调查以检查是否有任何人在问我在这里的确切内容。如果这是重复的,我深表歉意。

假设我有以下不正确的程序:

extern void undefined_function(void);int main(int argc, char **argv){    undefined_function();    undeclared_function();    exit(0);}

用 gcc 编译得到:

$ gcc warnings.c warnings.c: In function ‘main’:warnings.c:6:2: warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]/tmp/ccVzjkvX.o: In function `main':warnings.c:(.text+0x15): undefined reference to `undefined_function'warnings.c:(.text+0x1f): undefined reference to `undeclared_function'collect2: ld returned 1 exit status$ 

我知道为什么会发出这些警告,以及如何纠正它们 - 这不是我的问题。

从输出中可以明显看出,gcc 将 exit() 与其他未定义/未声明的函数区别对待,因为它认为它是“内置函数”

对于给定的 gcc,我如何判断 gcc 认为是“内置函数”的函数列表是什么?它正是 c 标准库函数的列表还是其他什么?

我考虑过做 nm libc.so,但是在我的 Ubuntu VM 上,这个 glibc 似乎被剥离了,所以在这方面没有有用的信息:

$ nm /lib/x86_64-linux-gnu/libc.so.6nm: /lib/x86_64-linux-gnu/libc.so.6: no symbols$ 

最佳答案

这个列表很长,而且非常特定于平台。 C 标准库中的许多(但绝不是全部)函数(有时)被视为内置函数。但也有大量与特定处理器指令和其他硬件功能相关的内置函数。它们记录在从 here; 链接的各个页面中特别是,参见 here, here, here, here , 和 here.

关于c - 隐式声明警告 : What are the built-in functions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19986247/

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