c语言中的extern怎么用?
extern在c中就是个外部申明,因为C是先申明再使用,当你想调用的变量或者函数不在你的模块当中,你可以使用外部申明。在使用外部申明的时候要特别注意,因为这只是个申明,并不是实体,当出现声明和实体不符的时候,编译器是不会管的,链接后就可能出现错误。比如你的实体是 int sample( int x ) ;而你在申明的时候是extern int sample( void ) ; 所以我不喜欢这种方式去声明。特别是多个人合作项目的时候,这种方法往往导致的结果很难去debug。即使是别人写好提供给你的,那他在修改了函数或者变量的类型,参数,往往会忘记修改给你的申明。
extern 还有个作用就是当你C和C++混用的时候,比如在C++中要使用C, 那么就要告诉编译器,你这段代码使用的是C,需要用C的编译器去编译,那可以使用extern “C” { ………} 否则编译会有问题
关键字符有哪些
数据类型关键字(12个):
char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明联合数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
(2)控制语句关键字(12个):
a循环语句
(1) for: 一种循环语句(可意会不可言传)
(2) do : 循环语句的循环体
(3) while :循环语句的循环条件
(4) break:跳出当前循环
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
b条件语句
(1)if: 条件语句
(2)else :条件语句否定分支(与 if 连用)
(3)goto:无条件跳转语句
c开关语句
(1)switch :用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
(4)return :子程序返回语句(可以带参数,也看不带参数)
3 存储类型关键字(4个):
(1)auto :声明自动变量 一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4) static :声明静态变量
4 其它关键字(4个):
(1)const :声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用)
(4)volatile:说明变量在程序执行中可被隐含地改变
初学C语言fatal error LNK1120: 1 unresolved externals怎么办
- 能编译不能运行 大神哪里错了 书上就这样的
- max函数没有定义,你只声明了,没有具体定义。
C语言extern是给外面的用还是用外面的参数
- 比如int main(){extern A;}是指A,用了主函数外面的A,还是主函讥阀罐合忒骨闺摊酣揩数里面定义的A能被其他函数使用?
- 如果使用extern关键字,代讥阀罐合忒骨闺摊酣揩表声明一个变量或函数,该变量函数的定义由编译器到其他文件中寻找。如果使用了extern关键字后又在下面定义了变量函数,那么则会覆盖其他文件中的定义,此时extern关键字无效。
在C语言中,register,const,static,extern分别都是什么意思,有什么用
- register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。const限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。
1.4 C语言中extern在函数声明中是什么意思
- extern是CC++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用、记住。下列语句:extern int a;就是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现连接错误。extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。另外,extern也可用来进行链接指定。如果函数的声明中带有关键字ext姬川灌沸弑度鬼砂邯棘ern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有明显的区别:extern int f(); 和int f();当然,这样的用处还是有的,就是在程序中取代include“*.h”来声明函数,在一些复杂的项目中,可以在所有的函数声明前添加extern修饰。
求助, C语言错误,错误码:fatal error LNK1120: 1 unresolved externals
- 源码:#include "stdio.h"void main(){int i;int count=1;for(i=1;i100;i++){while(count51){if(i10){i=i^2;printf("%dn",i);}if(i9){i=(i10)^2+(i%10)^2;printf("%dn",i);}count++;}}}感觉都挺好的啊,不知道这个错误的原因。求助。
- 你好! 程序是没有问题的,是不是你工程建错了,是控制台程序,你检查一下