久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2120|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 台湾佬成人网 | 国产九九精品 | 久久午夜精品福利一区二区 | 国产精品永久久久久久久www | 国产精品爱久久久久久久 | 日韩一区二区三区av | 99精品欧美一区二区蜜桃免费 | 美女视频黄的免费 | 成人免费观看男女羞羞视频 | 欧美成人精品在线观看 | 97视频在线免费 | 国产精品免费一区二区三区四区 | 天天操操 | 草久在线| 欧美精品一区二区三区四区 在线 | 国产精品3区| 久久高清| 天天精品综合 | 午夜寂寞影院在线观看 | 精品一区二区三区在线视频 | 理论片免费在线观看 | 日本一区二区不卡视频 | 二区三区视频 | 国产精品国产a | 国产欧美日韩二区 | 亚洲精品一区二区网址 | 亚洲精品欧美 | 国产成人福利在线观看 | 欧美一区二区三区高清视频 | 91精品国产一二三 | 国产做爰 | 日本久久视频 | 日韩在线中文字幕 | 日韩免费网站 | 91影片| 亚洲精品在线播放 | 波波电影院一区二区三区 | 99国产精品视频免费观看一公开 | 欧美精品一区二区三区在线播放 | 999久久精品| 国产不卡在线播放 |