51微控制器C語言程式設計雜談基礎----全域性變數和區域性變數
< 部落格宗旨:文章短,時間短,不考驗耐力 >
我記著我在開始編寫51微控制器程式的時候,老是在思考一個問題:怎麼把一個函式中的值傳到另一個函式中去呢???讓我痛不堪言。雖然簡單,但是在那個時候我還是不知道的。
全域性變數:就是在整個工程都可以使用的(概括說,當然需要引用extern 等關鍵字)。
區域性變數:是在函式內有效。或者說是在 { } 域內有效的變數。
上面的概括都是不謹慎的說法,完全為了剛開始用c語言的小夥伴們而描述的。
#include <stdio.h> #include <reg51.h> int global_variable; void add(int c ,int b ) { global_variable = c+b; } void main( ) { int local_variable = 12; global_variable = 12 + local_variable; }
附 keil C51的工程,簡單描述全域性變數和區域性變數。大家可以下載看一下,編譯一下。有改善意見,希望留言。
相關推薦
51微控制器C語言程式設計雜談基礎----全域性變數和區域性變數
< 部落格宗旨:文章短,時間短,不考驗耐力 > 我記著我在開始編寫51微控制器程式的時候,老是在思考一個問題:怎麼把一個函式中的值傳到另一個函式中去呢???讓我痛不堪言。雖然簡單,但是在那個時候我還是不知道的。 全域性變數:就是在整個工程都可以使用
51微控制器 C語言中全域性變數的使用extern
extern可以用來在其他模組中公用變數和函式。其用法如:例如:在a.c檔案中定義一個變數 unsigned int intA; intA = 0x00;在b.c中要操作這個變數,就在 b.c檔案中定義 extern unsigned int intA; intA
51微控制器C語言程式100例
目錄目錄................................................................................................................................1函式的使用和熟悉**************
C語言程式設計---socket基礎
最初socket是為支援TCP/IP協議而開發的,現在它已被認為是開發非RPCWindows網路應用程式的最好途徑。 socket作為BDS UNIX的程序通訊機制,是進行程式間通訊(IPC)的 BSD 方法,這意味著 socket 用來讓一個程序和其他的程序互
51微控制器C語言延時函式
C程式中可使用不同型別的變數來進行延時設計。經實驗測試,使用unsigned char型別具有比unsigned int更優化的程式碼,在使用時應該使用unsigned char作為延時變數。 以某晶振為12MHz的微控制器為例,晶振為12MHz即一個機器週期為1us。 一. 500ms延時子程
c語言全域性變數和區域性變數問題彙總(轉)
1、區域性變數能否和全域性變數重名? 答:能,區域性會遮蔽全域性。要用全域性變數,需要使用"::" 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同一個函式內可以定義多個同名的區域性變數,比如在兩
C語言 全域性變數和區域性變數的大小限制(關於堆疊的劃定)
下午做最長公共子序列的時候遇到的問題,問了felix後恍然大悟...看程式碼 #include <stdio.h> int main(){ int a[1000000];//區域性變數 return 0; } 編譯執行後發現溢位錯誤。 #include <
C語言全域性變數和區域性變數總結
————————————————————————————————————————————————————————————————————————————— 只有不斷的學習,不斷的進步,才能不被替代! 只有你的不可替代性才決定你的價值! -----2016年11月18
linux c 語言程式設計環境:動態庫和靜態庫的製作
庫: 庫用於將相似函式打包在一個單元中。然後這些單元就可為其他開發人員所共享,並因此有了模組化程式設計這種說法 — 即,從模組中構建程式。Linux 支援兩種型別的庫,每一種庫都有各自的優缺點。靜態庫包
c語言全域性變數和區域性變數
全域性變數: (1)在函式外定義 (2)在全域性可見 (3)一般在程式頂部定義 (4)存放在記憶體的全域性資料區 (5)如在定義時未初始化,則其值為0 (6)如果一個函式修改了全域性變數,則所有其他的函式都會看到修改後的變數 區域性變數: (1)
【轉載】c語言全域性變數和區域性變數問題彙總
1、關鍵字static的作用是什麼?定義靜態變數 2、static有什麼用途?網上答案: 1).限制變數的作用域(在程式的整個執行期間都不釋放) 2).設定變數的儲存域(儲存在靜態儲存區內) 譚浩強C語言page180: (1)對區域性變數用static宣告,則為該變數分
C/C++ 全域性變數和區域性變數在記憶體裡的區別?堆和棧
一、預備知識—程式的記憶體分配 一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧,如果還不清楚,那麼就把它想成陣列,它的記憶體分
C/C++關於全域性變數和區域性變數初始化與不初始化的區別
在C語言裡,全域性變數如果不初始化的話,預設為0,也就是說在全域性空間裡:int x =0; 跟 int x; 的效果看起來是一樣的。但其實這裡面的差別很大,強烈建議大家所有的全域性變數都要初始化,他們的主要差別如下: 編譯器在編譯的時候針對這兩種情況會產生兩種符號
python基礎:函式名稱空間、作用域、全域性變數和區域性變數
一、名稱空間: Python的名稱空間的本質是一個字典,用來記錄變數名稱和值。字典的key是變數的名稱,字典的value對於的是變數的值。 例如 {‘name’:’zs’,’age’:10} 名稱空間一共分為三種:區域性名稱空間、全域性名稱空間、內建名稱空間 區域性名稱空間: 每個函式都有自
C/C++全域性變數和區域性變數作用域問題
這是一個作用域的問題。一個宣告將一個名字引進一個作用域;區域性變數(通常在函式中定義)的作用域是從宣告的那一點開始,直到這個宣告所在的塊結束為止(一個塊就是由{}圍起來的一段程式碼)。全域性變數(在所有函式、類、名稱空間之外定義)的作用域從宣告的那一點開始,直到這個宣
C語言的那些祕密之---函式返回區域性變數
一般的來說,函式是可以返回區域性變數的。 區域性變數的作用域只在函式內部,在函式返回後,區域性變數的記憶體已經釋放了。因此,如果函式返回的是區域性變數的值,不涉及地址,程式不會出錯。但是如果返回的是區域性變數的地址(指標)的話,程式執行後會出錯。因為函式只是把指
Python3 全域性變數和區域性變數的使用
name='lhf' def change_name(): print('我的名字',name) change_name() def change_name(): name='帥了一筆' print('我的名字',name) change_name() print(name) d
JAVA基礎(11)---成員變數和區域性變數
變數的分類: 按照變數宣告的位置(作用的範圍): 成員變數: 宣告在類的內部,方法的外部的變數,稱為成員變數 區域性變數:宣告在方
JS 變數和函式提升 全域性變數和區域性變數
1. var a = 10; function test() { a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test();//100 10 100 =&
Python千萬要注意的全域性變數和區域性變數問題
1、直接在函式中呼叫全域性變數 m = 100 def fun(): print("m1:",m) fun() print("m2:", m) 輸出: 2、函式體內呼叫與全域性變數同名的區域性變數 m = 100 def fun(): m = 50