欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2237|回復: 4
打印 上一主題 下一主題
收起左側

問一個C語言extern跨文件變量使用的基礎問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:285416 發表于 2020-2-15 12:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我知道這樣
extern int a;
外部聲明,
只是,想想如果利用函數返回 調用其它文件中的變量,也試沒問題
就是不明白C的底層知識,
像這樣倆種方法,目的是一樣的功能都能跨文件變量間的訪問,只是如果是外部聲明和函數返回調用
哪一個更適合,外部聲明,應該算是全局變量吧,這樣是對內存的占多,
還是函數返回會讓程序多跑路,事得其返,
C的甚而理論學的不扎實所以問問大神們你們一般是如何處理的
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:235200 發表于 2020-2-15 20:00 | 只看該作者
extern int a;是“聲明”了變量a,但沒分配存儲空間,還不能使用。int a;定義了變量a并分配了空間,可以使用。
聲明:聲明和定義是有區別的。聲明不等于定義,聲明只是指出了變量的名字,并沒有為其分配存儲空間;定義指出變量名字同時為變量分配存儲空間,定義包含了聲明。在程序中一個變量可以聲明多次,但只能定義一次。聲明時不能賦初值,如果聲明時有初始化值,就被當做定義了,例如:
extern  int  a = 5; //定義了變量a=5
后面的程序中若再出現extern  int a = 5;或者int  a;的語句,就會出錯,因為變量只能定義一次。
回復

使用道具 舉報

板凳
ID:285416 發表于 2020-2-15 22:39 | 只看該作者
謝謝,主要是,我有些習慣,一般盡量的不定義變量,或是常量,當然必要的是不可少,在大型的開發中這是重要的,
我的找一些方法,還是調用函數,主要是為了,好修改管理,全部的數據定義在一個文件內,在其它文件如果想訪問這里的數據,調用這文件里的函數就可以,
回復

使用道具 舉報

地板
ID:235200 發表于 2020-2-16 00:05 | 只看該作者
nmgbtzyf 發表于 2020-2-15 22:39
謝謝,主要是,我有些習慣,一般盡量的不定義變量,或是常量,當然必要的是不可少,在大型的開發中這是重要 ...

這是一種很好的結構化程序編寫方法,多編寫功能子函數,需要時就調用它
回復

使用道具 舉報

5#
ID:462827 發表于 2020-2-16 15:12 | 只看該作者
extern int a;

這個聲明意思是說,我現在要在當前C文件中使用a這個變量,而a是在其它C文件中定義過了,這樣而已。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表