汉扬编程 C语言入门 (c语言中的extern函数)c语言中的extern是什么,有什么作用啊?

(c语言中的extern函数)c语言中的extern是什么,有什么作用啊?

extern是全局变量声明 只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上) 若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下 例如 #include \”my_Fun.c\” extern int b;//b是在my_Fun.c中声明了的一个全局变量 这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错) 这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了

c语言中extern的意思是什么?

extern表示是外部函数或外部变量,比如:1、externvoidadd(intx,inty);表示该函数主体不在当前模块中,在另一个模块中(文件)2、externinttotal;表示该变量在另一个模块总定义过。一般都把一些经常用到的枚举和变量之类的写在.h头文件中。这样要引用时直接include\”头文件名\”就可以了调用里面所有的枚举和变量了。在大型项目中,引用别的.c文件中的函数则只能用extern,因为.c文件是不能include的。所以想引用别的.c文件中的函数和全局变量、枚举等等的就只能用extern。

c语言的变量说明哪个是正确的?

C语言变量的声明与定义

C语言声明一个变量、定义一个变量,感觉没什么差别,但总是容易混淆不清,那么这两者之间究竟有什么差别呢

—、两者的定义

变量定义

用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。

变量声明

用于向程序表明变量的类型和名字,一个变量可以有多个声明。在C语言中,所有的变量都必须先声明后使用。可以用extern这个关键字来声明已经定义的变量。

二:两者的区别

定义是特殊的声明,它为对象分配内存。声明没有分配内存,这是最大的区别。

声明不一定是定义,定义一定包含声明。声明的变量名字已经匹配到一块内存上了,描述其他地方的创建的对象。

一个变量只能定义一次,但可以多次声明。

三:代码演示

这边创建main.c、test.c、test.h三个文件进行演示。

main.c

#include<stdio.h>

#include \”test.h\”

/*

* 声明变量d, 变量d在test.c里面定义,在这边或者test.h声明,

* 才能在main.c里面调用。不声明的话,编译会失败,声明不分配内存。

*/

extern int d;

void main()

{

int a = 10; /* 定义且声明变量,同时进行初始化,系统有分配内存 */

int b; /* 定义且声明变量,但不进行初始化,系统有分配内存 */

b = 20;

printf(\”a = %d, b = %d\\n\”, a, b);

fun_test();

printf(\”c = %d, d = %d\\n\”, c, d);

}

test.c

#include<stdio.h>

int c = 30; /* 定义且声明变量,同时进行初始化,系统有分配内存 */

int d; /* 定义且声明变量,但不进行初始化,系统有分配内存 */

void fun_test()

{

d = 40;

printf(\”hello test, c = %d, d = %d\\n\”, c, d);

}

test.h

#ifndef TEST_H

#define TEST_H

extern int c; /* 声明变量c, 系统没有分配内存 */

extern void fun_test(); /* 声明函数fun_test */

#endif

编译执行

laiguoliang@earth:~/test/extern$ ls

main main.c test.c test.h

laiguoliang@earth:~/test/extern$ ./main

a = 10, b = 20

hello test, c = 30, d = 40

c = 30, d = 40

laiguoliang@earth:~/test/extern$

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/7109.html

c语言中的extern怎么用?

(c语言中如何比较字母大小)c语言如何比较字符大小?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部