www.3112.net > C语言ExtErn使用例子

C语言ExtErn使用例子

extern我用了几次,主要是声明外部变量的作用,我用的也是在头文件中.比如说,你有一个project.c,lib.c,lib.h,三个文件,在lib.h里面有lib.c的变量定义,比如a[4]数组,也就是说这个变量是lib.c的全局变量,当我在project.c文件中要用到的时候

//head file library.h#ifndef LIBRARY_H#define LIBRARY_h extern FILE* logfile; //declaring an extern file pointer/*other random codes*/#endif//end of head file//source code main.c#include<stdio.h>#include"library.h" FILE* logfile; // declare the

extern是外部声明用的,用来声明外部的函数或者变量定义.例如,你在1.C中定义了一个函数和变量:void fun1(void);int a = 0;而你要在2.c中调用 fun1(),并且读取a的值,那么需要再2.c的头部如下外部声明:extern void fun1(void);extern int a = 0;这样的话在编译器在编译2.c时,不会报错误,而在链接时找fun1、a,以实现对外部函数、变量的访问.

extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义. 另外,extern也可用来进行链接指定.extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个

会自动找这个变量啊//A.cpp ///A源文件extern int i;void main() { i = 100; //试图使用B中定义的全局变量 } //B.cpp ///B 源文件int i; ///在B中定义当在A里面碰到i变量,会自动到别的文件里面去找,记得A和B要放到一个工程里面

extern一般用于跨文件的全局变量上.如果只是想在函数内部给a赋值,完全不需要用到extern.传递引用就可以了.例如main(){ int a; num(a);printf("%d", a);}int num(int &b){ b = 3;}或者传递指针,或者使用返回值

#include "123.h"/*123.h中放你的其他函数*/extern int func();/*这句跟用int func();一样,extern只起到标识作用,好让我们知道是外部函数而已*/main(){……}你肯定是没加#include "123.h"吧,要是没有它,你的程序也不知道去哪找func()啊,不能光用extern

在头文件中声明函数时,前面的extern可有可无,只要这些函数曾在某个.c文件中实现就行了,不过一些函数没有在所包含的头文件中给出声明,同时函数的定义位于其它文件中,这时候使用该函数的.c文件必须用extern标记该函数为外部函数.

写的不对,在第一个文件里面,不用写extern.需要在第二个文件里面写上 extern int Cchengxu(int n); 放在 main 之前就可以了.

所以我不喜欢这种方式去声明.特别是多个人合作项目的时候,这种方法往往导致的结果很难去debug.即使是别人写好提供给你的.,你这段代码使用的是C,需要用C的编译器去编译,那可以使用extern "C&quotextern在c中就是个外部申明

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com