extern int O_RDONLY;
#include <stdio.h>
//包含include <fcntl.h>时,会报错
/*
main.c:5: error: conflicting types for 'open'
/usr/include/fcntl.h:72: error: previous declaration of 'open' was here
*/
#include<fcntl.h>
//#include <sys/stat.h>
int open( const char * pathname, int flags)
{
printf("string is %s\n",pathname);
return 0;
}
int main(int argc, char **argv)
{
printf("flag is %d",O_RDONLY);
//open("my lady gaga",34);
return 0;
}
//我们在这里故意写和fcntl.h中定义的函数 int open( const char * pathname, int flags);一致
//看看为什么在不包含fcntl.h时不报错,但是包含这个fcntl.h头文件时报错
//why, because 编译器链接范围的问题!
//c语言编译是个单个文件编译过程。
//以现在main.c为中心,这是个闭包,include的符号(函数,变量,包括include<头文件>,extern声明
//为外部符号,在链接时用到。
//1.当有extern int O_RDONLY时,如果没有include<fcntl.h>,那么会报未定义的错误,
//增加则不会
//2.如果有int open函数,如果没有 include <fcntl.h>是不会报错的,有会报错
这些错误的猜想:应该归于宏定义的问题,而不是链接的问题。应该连接器还是知道去哪里链接的,但是由于宏定义的
问题,使其出错。
分享到:
相关推荐
extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用extern关键字的作用...
C语言中extern关键字详解.docx ,C语言中extern关键字详解.docx
extern关键字的作用 1、extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。extern声明不是定义,即不分配存储空间。也就是说,在一个文件中定义了变量和函数, 在其他文件中要...
extern 是 C 和 C++ 语言中的一个关键字,它可以用来声明变量和函数作为外部变量或者函数供其它文件使用。extern 可以置于变量或者函数前,以表示这个变量或函数定义在别的文件中,提示编译器在遇到此变量或函数的...
extern关键字的作用
extern关键字的作用extern的用法,本文较详细的介绍了extern的用法及注意事项.zip
1、本文详细描述了c语言中的关键字extern的作用。 2、通过详细示例,让读者更直观地阅读,更清晰的理解。 3、示例代码可直接复制,编译后可直接运行。 4、根据示例以及运行结果,让读者加强记忆及理解。
c语言中,有众多的关键字,这里对extern关键字进行详细的阐述,希望能加深大家的理解!
C语言中extern关键字详解[参考].pdf
主要介绍了C/C++ 中extern关键字详解的相关资料,需要的朋友可以参考下
本篇文章是对C/C++中的static与extern关键字的使用进行了详细的分析介绍,需要的朋友参考下
Extern_C,讲述extern的用法,和要注意的事项
利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例,分类说明一下。 一、引用同一个文件中的变量 #include int func(); int main() { func(); //1 printf(%d,num); /...
主要介绍了C/C++中extern关键字详解 的相关资料,需要的朋友可以参考下
如果按照这个顺序,变量num在main函数的后边进行声明和初始化的话,那么在main函数中是不能直接引用num这个变量的,因为当编译器编译到这一句话...像下面这一段代码,利用extern关键字先声明一下num变量,告诉编译器nu
方法一、全局函数和变量在devVar.c文件中实现,在extern.cpp文件中使用extern关键字声明在devVar.c文件中定义的函数和变量。 devVar.c文件的代码如下所示: #include int i = 1; void func() { ...