
C語言的關(guān)鍵字有很多,要說最不常見的,我覺得應(yīng)該是auto。 說它不常見,因為很多時候,我們都把它給省略了。 比如在函數(shù)內(nèi)部定義變量a,正常人都會這樣寫:
void function() { int a; }很少有人會在前面加一個auto:
void function()
{
auto int a;
}
其實這兩種寫法是等價的,嚴謹一點,在C語言中是等價的。 那auto關(guān)鍵字是不是雞肋般的存在? auto聲明的變量我們把它稱作自動變量,所謂自動變量,就是定義的時候自動分配內(nèi)存,函數(shù)運行結(jié)束后內(nèi)存自動釋放,所以你完全可以把它理解成局部變量。 它的作用跟static正好相反,static修飾的變量因為存放在靜態(tài)數(shù)據(jù)區(qū),所以即使函數(shù)調(diào)用結(jié)束了,變量也不會被釋放。
void function()
{
static int num = 0;
num++;
printf("num = %d
", num);
}
int main()
{
int i;
for (i = 0; i < 3; i++)
{
function();
}
return 0;
}
我覺得auto存在的意義,可能就是跟static靜態(tài)變量、register寄存器變量、extern外部變量區(qū)分開。

auto int num = 0; //錯誤
int main()
{
return 0;
}
第二個,在C語言中,使用auto聲明的變量可以沒有類型,比如直接來個auto a,編譯器會自動把a當(dāng)作整型數(shù)據(jù)。
int main()
{
auto a;
}
編譯結(jié)果:
root@Turbo:test# gcc test.c -o test
test.c: In function ‘main’:
test.c:5:7: warning: type defaults to ‘int’ in declaration of ‘a(chǎn)’ [-Wimpli
cit-int] 5 | auto a;
| ^
root@Turbo:test#
第三個,在C++中,auto是一個類型說明符,編譯器可以通過初始化的結(jié)果來判斷變量的類型,前提是變量一定得初始化,否則就會報錯。
int main()
{
autoa=1.1;//編譯器判斷a的類型為double
return 0;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
C語言
+關(guān)注
關(guān)注
183文章
7634瀏覽量
144195 -
變量
+關(guān)注
關(guān)注
0文章
615瀏覽量
29328
原文標題:C語言最雞肋的關(guān)鍵字
文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
亞馬遜 SP-API 深度開發(fā):關(guān)鍵字搜索接口的購物意圖挖掘與合規(guī)競品分析
本文深度解析亞馬遜SP-API關(guān)鍵字搜索接口的合規(guī)調(diào)用與商業(yè)應(yīng)用,涵蓋意圖識別、競品分析、性能優(yōu)化全鏈路。通過COSMO算法解析用戶購物意圖,結(jié)合合規(guī)技術(shù)方案提升關(guān)鍵詞轉(zhuǎn)化率,助力賣家實現(xiàn)數(shù)據(jù)驅(qū)動決策,安全高效優(yōu)化運營。
阿里巴巴開放平臺關(guān)鍵字搜索商品接口實戰(zhàn)詳解:OAuth2.0 認證落地 + 檢索效率優(yōu)化(附避坑代碼)
在 B2B 電商數(shù)據(jù)對接中,阿里巴巴開放平臺的關(guān)鍵字搜索商品接口(alibaba.aliindex.search)是獲取批發(fā)商品、供應(yīng)商數(shù)據(jù)的核心通道。但多數(shù)開發(fā)者會卡在OAuth2.0 認證斷連
阿里巴巴國際站關(guān)鍵字搜索 API 實戰(zhàn):從多條件篩選到商品列表高效獲客
??在跨境電商數(shù)據(jù)采集場景中,通過關(guān)鍵字精準搜索商品列表是基礎(chǔ)且核心的需求。本文將聚焦阿里巴巴國際站的關(guān)鍵字搜索接口,詳細介紹如何構(gòu)建多條件搜索請求、處理分頁數(shù)據(jù)、解析商品列表信息,并提供可直接復(fù)用的 Python 實現(xiàn)方案,幫助開發(fā)者快速搭建穩(wěn)定高效的商品搜索功能。
micro 關(guān)鍵字搜索全覆蓋商品,并通過 API 接口提供實時數(shù)據(jù)
micro 關(guān)鍵字搜索全覆蓋商品”并通過 API 接口提供實時數(shù)據(jù)
《ESP32S3 Arduino開發(fā)指南》第三章 C/C++語言基礎(chǔ)
用的數(shù)據(jù)類型及其取值范圍如表3.1.1所示。類型關(guān)鍵字(簡寫)占用內(nèi)存取值范圍
短整型int16_t(short)2字節(jié)-32768 ~ 32767
無符號短整型uint16_t(unsigned
發(fā)表于 06-10 09:20
深入理解C語言:C語言循環(huán)控制
在C語言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以讓程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進入無限循環(huán),C語言提供了多種循環(huán)控制語句,如break、continue和
static在單片機中的妙用
不要從字面意思誤以為關(guān)鍵字 static 很安靜,其實它一點都不安靜。這個關(guān)鍵字在 C 語言里主要有兩個作用,下面我們就來介紹一下 C
發(fā)表于 04-02 13:50
?1次下載
單片機編程關(guān)鍵字之volatile
volatile 修飾的變量是說這變量可能會被意想不到地改變。通常對于程序員而言,單片機 中用的就算常見了volatile 是易變的,不穩(wěn)定的意思。其實對于很多人來說,根本沒見過這個關(guān)鍵字,不 知道
發(fā)表于 04-02 13:47
?2次下載
帶你在單片機編程中熟練使用const(可下載)
在 C 語言關(guān)鍵字中 const 舉足輕重,我們今天就深度聊一聊 const 的定義和實際應(yīng)用,讓它 不再是迷C 語言中 const
發(fā)表于 04-01 14:18
?3次下載
大語言模型的解碼策略與關(guān)鍵優(yōu)化總結(jié)
的技術(shù)參考。主要涵蓋貪婪解碼、束搜索、采樣技術(shù)等核心解碼方法,以及溫度參數(shù)、懲罰機制等關(guān)鍵優(yōu)化手段。大型語言模型的技術(shù)基礎(chǔ)大型語言模型是當(dāng)代自然語言處理技術(shù)的核心
EE-62:在C語言中訪問短字內(nèi)存
電子發(fā)燒友網(wǎng)站提供《EE-62:在C語言中訪問短字內(nèi)存.pdf》資料免費下載
發(fā)表于 01-07 14:02
?0次下載
C語言關(guān)鍵字分別發(fā)生在哪個階段
以下C語言關(guān)鍵字,分別發(fā)生在哪個階段? 第一個,define。 首先得糾正一下,define 并不是C語言里面的
C++新手容易犯的十個編程錯誤
簡單的總結(jié)一下?C++ 新手容易犯的一些編程錯誤,給新人們提供一個參考。 1 有些關(guān)鍵字在 cpp 文件中多寫了 對于 C++ 類,一些關(guān)鍵字只要寫在 .h 中就好,cpp 中就不用再
C語言與Java語言的對比
C語言和Java語言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨特的優(yōu)勢和特點,適用于不同的應(yīng)用場景。以下將從語法特性、內(nèi)存管理、跨平臺性、性能、應(yīng)用領(lǐng)域等多個方面對C
C語言與其他編程語言的比較
C語言作為一種歷史悠久的編程語言,自其誕生以來,一直在軟件開發(fā)領(lǐng)域扮演著重要角色。它以其高效、靈活和可移植性強的特點,成為了系統(tǒng)級編程的首選語言之一。

C語言最雞肋的關(guān)鍵字
評論