java隐式声明_隐式声明警告:内置函数是什么?

问题界面正在标记许多"Questions that may already have your answer",但我试图尽职尽责地检查是否有人问我到底在哪里 . 如果这是重复,我道歉 .

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

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

$

I know why these warnings are emitted, and how to correct them - that is not my question.

从输出中可以清楚地看出,gcc正在以不同的方式处理 exit() 与其他未定义/未声明的函数,因为它认为它是"built-in function"

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

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

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

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

$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值