c语言extern用法(extern声明变量)

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++;}}}感觉都挺好的啊,不知道这个错误的原因。求助。
  • 你好! 程序是没有问题的,是不是你工程建错了,是控制台程序,你检查一下