c/c++中變量的聲明和定義深入解析
更新時(shí)間:2013年09月26日 09:02:12 作者:
“聲明”為編譯服務(wù),用于類型檢查 ;“定義”在運(yùn)行時(shí)會(huì)分配空間,不能重復(fù)定義,同時(shí)具備聲明的功能
不管是函數(shù)還是變量的聲明 ,都是為了告訴編譯器我要使用這個(gè)變量或者函數(shù)了,用于類型檢查。在定義 的時(shí)候編譯器是不會(huì)分配任何內(nèi)存的,
比如下面的函數(shù):
復(fù)制代碼 代碼如下:
void func() {
int a ;
int b = 0 ;
a = 0 ;
}
當(dāng)函數(shù)執(zhí)行到int a ;的時(shí)候,這是一個(gè)聲明,編譯器不會(huì)為其分配內(nèi)存空間 。當(dāng)執(zhí)行到a = 0; 這是一個(gè)定義,編譯器才會(huì)為其分配內(nèi)存空間。因此聲明不一定是定義,定義一定就是定義,還可以包含聲明。但是下面的這種肯定只是聲明:
extern int a ;
因此:
“聲明”為編譯服務(wù),用于類型檢查 ;
“定義”在運(yùn)行時(shí)會(huì)分配空間,不能重復(fù)定義,同時(shí)具備聲明的功能。
相關(guān)文章
exec()函數(shù)在C++中的應(yīng)用及其用法
exec()函數(shù)在C++中是一個(gè)進(jìn)程控制函數(shù),用于創(chuàng)建新進(jìn)程執(zhí)行其他程序或命令行指令。exec()函數(shù)可以替換當(dāng)前進(jìn)程的代碼和數(shù)據(jù),創(chuàng)建新的進(jìn)程運(yùn)行其他程序。exec()函數(shù)有多個(gè)版本,例如execl、execv、execle、execve等,根據(jù)不同的參數(shù)類型和個(gè)數(shù)來使用2023-05-05C語言數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列的相互實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用C語言相互實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的棧與隊(duì)列,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-07-07c語言中malloc、realloc與calloc 的區(qū)別以及聯(lián)系
以下是對(duì)c語言中的malloc函數(shù),realloc函數(shù)與calloc函數(shù)的區(qū)別以及它們之間的聯(lián)系進(jìn)行了介紹,需要的朋友可以過來參考下2013-08-08