程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 小議 C中定義和聲明

小議 C中定義和聲明

編輯:關於C語言

寫給學弟的,其他飛過.:

1.int i; 
2.int i = 0; 
3. extern int i; 

第一種,你可以認為它是定義也可以認為它是聲明, 這是不同編譯器決定的, 但是大部分都是聲明, 只有當給i進行賦值時才會真正定義.認為它是聲明.會告訴編譯器我這個符號已經預定了, 在這塊作用域內不允許第二個符號 .
第二種,自然是定義了,i會告訴編譯器,我已經綁定到這塊內存上了,其它變量不能占用這塊內存,除非出棧後,一個變量或對象在一定的區域內只能被定義一次,所以如果你重復定義一個變量, 會給你error,告訴你重復定義了!


       int i = 0; 
       int i = 1; 

w1.c: In function ‘main’: 
w1.c:6:13: error: redefinition of ‘i’ 
w1.c:5:13: note: previous definition of ‘i’ was here 
第三種,任何編譯器都會認為它是聲明!
可以簡化成: 定義創建了名字, 並且在這個作用域保持唯一, 並且為這個名字開辟內存, 聲明沒有分配內存 只是告訴你有這個符號了. 下面可能會用到, 不然會告訴你未聲明 .

摘自 Crazybaby's blog

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved