关于C语言中<errno.h>头文件中的全局变量errno的问题
答案:3 悬赏:40 手机版
解决时间 2021-03-16 03:10
- 提问者网友:火车头
- 2021-03-15 10:54
c语言中,工程中的源文件只要包含了头文件,就能用其中的全局变量 errno,但是我看到中只用语句extern int errno声明了errno,没找到errno在哪定义。因为全局变量总要有一个定义的地方告诉编译器去申请内存,所以我就想问errno的定义在哪?或者这里用了什么特别的处理方式?
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-03-15 12:13
程序在链接时会链接系统的lib库,<errno.h>中声明的一些变量和函数都在链接的lib库中,lib库不提供原代码,仅提供了供大家使用的头文件。你在程序中用到的系统函数也在lib库中。
全部回答
- 1楼网友:往事隔山水
- 2021-03-15 13:56
我用的VC6,我在errno中找到的errno,不是一个变量,而是一个宏定义
_CRTIMP extern int * __cdecl _errno(void);
#define errno (*_errno())
不知道楼主的是不是这样。这个errno是一个指向函数的指针了。
- 2楼网友:渊鱼
- 2021-03-15 12:27
查看错误代码errno是调试程序的一个重要方法。当linuccapi函数发生异常时,一般会将errno变量(需includeerrno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯