最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言關鍵字總結解析

 更新時間:2021年07月08日 15:54:57   投稿:newname  
這篇文章主要介紹了C語言關鍵字總結解析,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是本文的詳細內容,需要的朋友可以參考下

C語言關鍵字總結

1.關鍵字變更歷史

1999年12月16日,ISO推出了C99標準,該標準新增了5個C語言關鍵字:
inline restrict _Bool _Complex _Imaginary(注意bool 從來不是C語言的關鍵字)
2011年12月8日,ISO發(fā)布C語言的新標準C11,該標準新增了7個C語言關鍵字:
_Alignas _Alignof _Atomic _Static_assert _Noreturn _Thread_local _Generic

2.關鍵字列表

auto :聲明自動變量
break:跳出當前循環(huán)
case:開關語句分支
char :聲明字符型變量或函數(shù)返回值類型
const :聲明只讀變量
continue:結束當前循環(huán),開始下一輪循環(huán)
default:開關語句中的“其它”分支
do :循環(huán)語句的循環(huán)體
double :聲明雙精度浮點型變量或函數(shù)返回值類型
else :條件語句否定分支(與 if 連用)
enum :聲明枚舉類型
extern:聲明變量或函數(shù)是在其它文件或本文件的其他位置定義
float:聲明浮點型變量或函數(shù)返回值類型
for:一種循環(huán)語句
goto:無條件跳轉語句
if:條件語句
int: 聲明整型變量或函數(shù)
long :聲明長整型變量或函數(shù)返回值類型
register:聲明寄存器變量
return :子程序返回語句(可以帶參數(shù),也可不帶參數(shù))
short :聲明短整型變量或函數(shù)
signed:聲明有符號類型變量或函數(shù)
sizeof:計算數(shù)據類型或變量長度(即所占字節(jié)數(shù))
static :聲明靜態(tài)變量
struct:聲明結構體類型
switch :用于開關語句
typedef:用以給數(shù)據類型取別名
unsigned:聲明無符號類型變量或函數(shù)
union:聲明共用體類型
void :聲明函數(shù)無返回值或無參數(shù),聲明無類型指針
volatile:說明變量在程序執(zhí)行中可被隱含地改變
while :循環(huán)語句的循環(huán)條件

3.c語言關鍵字優(yōu)點(c99,不是c11標準)

簡潔緊湊、靈活方便

  ANSI C一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區(qū)分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。

運算符豐富

  C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。

數(shù)據類型豐富

  C語言的數(shù)據類型有:整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等。能用來實現(xiàn)各種復雜的數(shù)據結構的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
同時對于不同的編譯器也有各種強大的擴展功能。

另外

  C語言如此豐富數(shù)據類型及強大指針功能,其對硬件的管控能力極強,所以許多操作系統(tǒng)內核及MCU芯片程序開發(fā)都偏愛硬件。

4.這里可以提下volatile關鍵字,關于這個關鍵字有一些文章,參考 這篇 

   volatile總是與優(yōu)化有關,編譯器有一種技術叫做數(shù)據流分析,分析程序中的變量在哪里賦值、在哪里使用、在哪里失效,分析結果可以用于常量合并,常量傳播等優(yōu)化,進一步可以消除一些代碼。但有時這些優(yōu)化不是程序所需要的,這時可以用volatile關鍵字禁止做這些優(yōu)化。

  volatile的本意是“易變的” 因為訪問寄存器要比訪問內存單元快的多,所以編譯器一般都會作減少存取內存的優(yōu)化,但有可能會讀臟數(shù)據。當要求使用volatile聲明變量值的時候,系統(tǒng)總是重新從它所在的內存讀取數(shù)據,即使它前面的指令剛剛從該處讀取過數(shù)據。精確地說就是,遇到這個關鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進行優(yōu)化,從而可以提供對特殊地址的穩(wěn)定訪問;如果不使用valatile,則編譯器將對所聲明的語句進行優(yōu)化。(簡潔的說就是:volatile關鍵詞影響編譯器編譯的結果,用volatile聲明的變量表示該變量隨時可能發(fā)生變化,與該變量有關的運算,不要進行編譯優(yōu)化,以免出錯)

看兩個事例:

1>告訴compiler不能做任何優(yōu)化

比如要往某一地址送兩指令:
int *ip =...; //設備地址
*ip = 1; //第一個指令
*ip = 2; //第二個指令
以上程序compiler可能做優(yōu)化而成:
int *ip = ...;
*ip = 2;
結果第一個指令丟失。如果用volatile, compiler就不允許做任何的優(yōu)化,從而保證程序的原意:
volatile int *ip = ...;
*ip = 1;
*ip = 2;
即使你要compiler做優(yōu)化,它也不會把兩次付值語句間化為一。它只能做其它的優(yōu)化。

2>用volatile定義的變量會在程序外被改變,每次都必須從內存中讀取,而不能重復使用放在cache或寄存器中的備份。

例如:

volatile char a;
 
a=0;
 
while(!a){
 
//do some things;
 
}
 
doother();
 
如果沒有 volatiledoother()不會被執(zhí)行

到此這篇關于C語言關鍵字總結解析的文章就介紹到這了,更多相關C語言關鍵字總結內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言繪制雷達圖的示例代碼

    C語言繪制雷達圖的示例代碼

    常用的統(tǒng)計圖有條形圖、柱形圖、折線圖、曲線圖、餅圖、環(huán)形圖、扇形圖,其中還有一種雷達圖的繪制也較難,本文為大家提供了雷達圖的繪制方法,需要的可以參考下
    2024-02-02
  • 淺談char*類型返回值和字符串常量

    淺談char*類型返回值和字符串常量

    下面小編就為大家?guī)硪黄獪\談char*類型返回值和字符串常量。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Qt數(shù)據庫應用之實現(xiàn)通用數(shù)據庫采集

    Qt數(shù)據庫應用之實現(xiàn)通用數(shù)據庫采集

    這篇文章主要為大家介紹了Qt中是如何實現(xiàn)通用數(shù)據庫采集的,文中的示例代碼講解詳細,對我們學習Qt有一定幫助,感興趣的小伙伴可以了解一下
    2022-03-03
  • c++中創(chuàng)建.in文件的方法步驟

    c++中創(chuàng)建.in文件的方法步驟

    在本篇文章里小編給大家分享了一篇關于c++中創(chuàng)建.in文件的方法步驟的內容以及相關知識點,需要的朋友們學習下。
    2019-07-07
  • C語言實現(xiàn)圖書管理系統(tǒng)課程設計

    C語言實現(xiàn)圖書管理系統(tǒng)課程設計

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)圖書管理系統(tǒng)課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • c語言求階乘精確值示例

    c語言求階乘精確值示例

    這篇文章主要介紹了c語言求階乘精確值示例,需要的朋友可以參考下
    2014-03-03
  • C/C++的內存管理你了解嘛

    C/C++的內存管理你了解嘛

    這篇文章主要為大家介紹了C/C++的內存管理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 貪心算法的C語言實現(xiàn)與運用詳解

    貪心算法的C語言實現(xiàn)與運用詳解

    這篇文章主要介紹了貪心算法的C語言實現(xiàn)與運用詳解,運用么,就是文中所附的ACM練習題,哈哈:D需要的朋友可以參考下
    2015-08-08
  • C語言數(shù)據結構之迷宮求解問題

    C語言數(shù)據結構之迷宮求解問題

    這篇文章主要為大家詳細介紹了C語言數(shù)據結構之迷宮求解問題,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C++ 非遞歸實現(xiàn)二叉樹的前中后序遍歷

    C++ 非遞歸實現(xiàn)二叉樹的前中后序遍歷

    本文將結合動畫和代碼演示如何通過C++ 非遞歸實現(xiàn)二叉樹的前中后序的遍歷,代碼具有一定的價值,感興趣的同學可以學習一下
    2021-11-11

最新評論

饶河县| 肃北| 岳池县| 雷山县| 巴林右旗| 沿河| 鄂尔多斯市| 安福县| 绵阳市| 丁青县| 屯门区| 漾濞| 尖扎县| 长兴县| 清苑县| 清新县| 广丰县| 莲花县| 长汀县| 齐河县| 石台县| 营口市| 寻甸| 开远市| 田东县| 通山县| 阿巴嘎旗| 平湖市| 玉屏| 蕲春县| 喀喇| 南丹县| 于田县| 仙游县| 阳信县| 类乌齐县| 柘荣县| 增城市| 玛曲县| 鄱阳县| 陇南市|