C語言自定義變數
1. c語言變數定義
這個表示的是位域,表示變數所佔得位數位結構是c51語言中的一種特殊結構,可以用於訪問一個位元組或字的多個位。位結構一般形式如下。
struct
位結構名
{
數據類型
變數名:
整形常數;
數據類型
變數名:
整形常數;
}位結構變數;
其中,struct為關鍵字,位結構數據類型必須是整型int(unsigned或signed);整形常熟必須是非負的整數,范圍是0~15,用於表示有多少位,即表示二進制位的個數,變數名是可選項,可以省略。位結構的定義,實例如下。
struct
{
unsigned
lbit
:
8;
//lbit
佔用低位元組0~7共八位。
unsigned
hbit0
:
4;
//hbit0
佔用高位元組0~3共4位。
unsigned
hbit1
:
3;
//hbit1
佔用高位元組4~6共3位。
unsigned
hbit2
:
1;
//hbit2
佔用高位元組第7位。
}bit;
位結構成員的訪問與結構成員的訪問相同,例如訪問上列位結構中的lbit成員可寫成如下形式
bit.lbit
在使用位結構時,應注意以下幾點。
1、位結構中的成員必須是int,但可以定義為unsigned或者signed。
2、當位結構成員長度為1時,c51語言將其認為是unsigned類型。
3、位結構總長度(位數)是各個位成員定義的位數之和,可以超過兩個位元組。
4、位結構中的成員不能使用數組和指針,但位結構變數可以是數組和指針。如果是指針,其成員訪問方式同結構指針。
5、位結構可以成為嵌套式結構的成員,與其他結構成員一起使用,示例如下。
struct
student
{
char
*name;
int
num;
int
age;
char
*sex;
float
score;
unsigned
reister:1;
unsigned
pay:1;
};
2. C語言中如何定義全局變數
1、首先,我們可以在函數外面定義變數,就是全局變數。
3. C語言中怎麼定義常變數
定義常變數的關鍵字為const,格式如下:
const
TYPE
var_name=INIT_VALUE;
1、
var_name為變數名;
2、TYPE為變數類型;
3、INTI_VALUE為初始化值,非必須,但由於常變數值不可修改,所以一般都有初始化值,否則沒意義;
4、const實際修飾為var_name,所以也可以寫作:
TYPE
const
var_name=INIT_VALUE;
4. C語言中,如何定義一個變數,使其既可以在主函數中使用,也可以在子函數中使用
把變數定義在主函數之外,即把變數設置為全局的。
一般我們都把變數沒局的定義放在函數中,因此變數枯迅讓的范圍就是在本函數中。可是如果定義在所有函數的外面,這樣所有的函數中,都可以使用本變數。
你可以試一下這個程序。定義一個全局變數a,在主函數中進行賦值,然後在子函數中進行輸出,結果是5.
#include<stdio.h>
int a;
void func();//函數聲明
int main()
{
a=5;
func();
}
void func()
{
printf("%d\n", a);
}
+++++++++++++++++++++++++++++++++++++++++++++++++++
當然,除了定義全局變數這個方法,還有其他的方法,那就是指針。在子函數的參數中傳遞變數的地址,依然可以使用該變數,依然能夠改變該變數的值。因為主函數和子函數的變數共用的是同一個地址的變數,因此,不管在哪個函數中對變數昌櫻進行操作,都會影響變數。
比如下面這個程序,在主函數中a的值為5,將變數a的地址傳遞過去,子函數將該地址中的變數的值設置為3,然後主函數輸出,結果卻是3.
#include<stdio.h>
void func(int *b);//函數聲明
int main()
{
int a=5;
func(&a);//把變數a的地址傳遞過去
printf("%d\n", a);
}
void func(int *b)
{
*b=3; //將地址b中變數的值設置為3
}
5. c語言中,怎麼樣定義一個字元串變數
1、定義變數字元串。
char str[200];
定義一個長度最大為200字元的字元串。
2、定義常量字元串。
由於常量字元串存儲在常量空間中,所以只需要定義一個指針,指向該地址即可。如char *s = "test string"。
拓展資料
c語言:
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。
目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
6. C語言中,如何定義一個布爾型變數
C語言中並沒有bool類型變數。這是C++中新增的系統類型。
要在C語言中使用bool類型,可以使用自定義的方式。
1 使用整型做bool類型。
typedef int bool;
或
typedef unsigned char bool;
只要是整型,都可以當做bool使用。
2 使用枚舉類型做bool類型。
typedef enum
{
false,
true
}bool;
實際應用中,枚舉類型較為普遍。
7. C語言變數的定義與使用
變數的存儲類別決定了變數中的數據在計算機內存中的存儲位置。C語言中局部變數存放在動態存儲區,全局變數或者靜態變數存放在靜態存儲區。下面是關於C語言變數的定義與使用,歡迎參考!
如果要為單片機控制系統編寫出高質量的C語言程序,合理的定義並使用變數是非常重要的。程序是用來處理數據的,而變數就是用來存儲數據的。每定義一個變數,編譯器就會在系統的RAM中分配一個物理存儲區域。在單片機控制系統中,RAM資源是非常有限的,作為單片機程序員,絕對不能隨意的定義變數,需要精打細算合理定義。為了實現這個目標,必須要對變數的多個特性有深刻的認識。
變數特性:
第一、變數定義要選擇恰到好處的類型,變數的類型直接決定了它所存儲的數據取值范圍,這類似於我們生活中使用的各種容器,選擇合適的變數類型,不但能保證數據存儲安全,還能有效的節約系統資源;
第二、變數的作用范圍必須清楚,C語言最基本的功能單元是函數,在函數內部使用的變數是私有變數,只能在函數內部使用。多個函數組成一個程序的功能模塊,並安置在某一個C文件中,在這些函數的頭部定義的變數是靜態變數(局部變數),這種類型的變數模塊內部的函數都可以訪問。如果在模塊內部聲明變數,並在該模塊的頭文件中導出,該類型變數就是全局變數,全局變數在整個工程中的所有函數都可以訪問;
第三、變數佔用的RAM資源,私有變數是可以釋放的,靜態變數與全局變數是不可以釋放的。也就是說在程序運行的整個過程中,私有變數佔用資源可以供不同的函數重復利用,而靜態變數與全局變數是完全被佔用不能重復利用的;
第四、變數可以存放常數,但因為單片機RAM資源有限,強烈建議不要用變數存放常量,而是在資源相對豐富的FlashROM中存放常量;
第五、局部變數與全局變數對於函數來說,訪問非常方便,但缺點顯而易見:訪問的函數越多,數據的安全性越低,一旦出現數據異常,很難排除問題。所以,請盡量減少局部變數與全局變數的使用;
第六、函數的型參個數盡量減少,這樣型參只會佔用通用寄存器組來完成參數傳遞工作。如果參數過多,編譯器可能會被迫分配佔用RAM資源,這樣不但參數傳遞效率變低,同時還會導致RAM資源浪費;
明確上述變數定義與使用特點後,在編寫程序的時候,一定要利用好這些特性並結合程序的特點,靈活的使用各種類型、各種作用范圍的變數,使程序在最大限度上得到優化,使系統性能提升至最優的狀態,才是我們嵌入式開發者的終極目標!
拓展:C語言入門學習
什麼人需要學習C語言?
從51JOB的統計數據來看,選擇C語言人才的企業多數以電子工程師、嵌入式工程師、硬體工程師、IOS工程師等為主,學歷本科以上相關專業,三年以上工作經驗,且外語水平要求至少四級以上。既然C語言學習者的就業門檻那麼高,為什麼還有很多人執著的去學習C語言呢?總結而言,無外乎以下幾點原由:
1)C語言不是面向對象語言。
因為這一點,任何學習C語言的人必須學會用函數思考問題。當你真正的去學習一門面向對象語言時,就會有C語言的函數學習基礎去對比。這會使學習面向對象編程更容易理解和更有樂趣。
2)用C編程就像進行智力體操。
你要顧及到每一件事情,而這在很多其他語言中他會為你處理。你要管理指針,內存分配,和內存回收。你要明白如何處理串,還有動態數據。在其他語言中,所有這些對你來說是隱藏的。你不知道他們如何運行,更不用說改變他們的運行方式了。你得到了使用的便利,失卻了對程序的控制和速度。很多情況下,這是筆值得的買賣。其他的情況下就不是這樣了。
3)不同情況下你會使用不同的編程語言。
某些情況下要求使用Lisp,其他的要Java,還有別的要C++。但是C是你堅實的基礎。你可能不會使用它做一些項目,但是它會幫助提高你的能力,熟練的用其他語言編程。
4)除了匯編語言之外,C代碼生成的程序比其他任何語言生成的程序來得更小和運行更快。
那麼為什麼不學匯編語言呢?匯編是一門學了很有用的.語言,但是它沒有C那樣的可移植性,並且其他流行的語言比如JAVA的語法是基於C的,而不是匯編。你仍然應該學匯編,但它並不會證明它會像學C那樣有用。
5)如果你想要寫一個視頻游戲引擎或操作系統,你會需要C。
你不能使用C#, Java, 或 Basic來完成這些編程任務。
C語言的發展史:
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
我適合學習C語言嗎?
首先我們要認清一個事實:C語言工作者只是眾多從事軟體開發者中的一小部分,在深圳這樣一個IT企業雲集的大城市,使用其它語言從事軟體開發的工作者多如牛毛,薪資待遇不比從事C語言開發的人低,當編程愛好者在選擇第一個編程語言時,C語言不一定是首先。我適合學習C語言嗎?解決這個問題,先回答以下幾個問題:
1)你學習C語言的目的是什麼?如果是想從事這方面的工作,那麼請義無反顧的堅持下去,推薦你在《微機原理》、《計算機組成原理》和《計算機系統結構》三本書中選一本配合《C語言程序設計》來看,這樣可以融匯貫通,讓你對編程有更深入更系統化的理解。而這種理解對計算機類學科的學習來說很重要。
2)您具備學習C語言的條件嗎?由於入職C語言編程的企業對入職者的要求比較高,在沒有編程工作經驗前提下多數想通過自學進入類似企業的人幾乎為零,包括很多計算機專業畢業的大、中專畢業生在校期間都會學到C語言,畢業出來後依然雲里霧里。C語言的開發,需要在實際工作中才能快速掌握。同時,英語(從事C語言開發需要經常查閱英文資料,尤其是單片機領域)、學歷、數學演算法、極強的邏輯思維能力等等也是讓多數人望而卻步的門檻。
8. C語言怎樣定義一個變數的范圍
定義變數時不能定義范圍,只能給出確定的值或者先不進行初始化。
自定義變數范圍:讓數組索引變數i在自己指定的范圍內(比如0~32)循環,只需對i進行33求余運算。比如想讓i在0~a內循環,那麼就是for(i=a+1;i/(a+1);i++)。
#include "stdio.h"
int main(int argc, char* argv[]) {
unsigned int i=0,tmp=0,a=0;
scanf("%d",&a);
for(i=a+1;i<65530;i++){
tmp = i%(a+1);
printf("%d ",tmp);
}
return 0;
}
(8)C語言自定義變數擴展閱讀
C語言變數定義和賦值
定義變數的格式非常簡單,如下所示:
數據類型 變數名;
首先要強調的一點是:最後的分號千萬不要丟了。變數的定義是一個語句,我們說過,語句都是以分號結尾的。
「數據類型」表示想要存儲什麼類型的數據就定義什麼類型的變數。想要存儲整數就定義成 int 型;想要存儲小數就定義成 float 型或 double 型;想要存儲字元就定義成 char 型……
「變數名」就是你想給這個變數起個什麼名字,通常都是用字母。比如:int i;
就表示定義了一個整型變數 i。