C語言第四講,typedef 關鍵字,以及作用域
阿新 • • 發佈:2018-02-18
pre 如果 訪問 作用域 c語言 pri 代碼 包含 結構
C語言第四講,typedef 關鍵字,以及作用域
一丶typedef關鍵字
在C語言中,有typedef 關鍵字,這個關鍵字的作用就是允許你為類型定義一個新的名字,也就是 起個別的名字
例如:
typedef unsigned int DWORD
那麽以後,我們定義unsigned int 類型的變量的時候,這不用敲寫 unsigned int 了.直接DWORD即可.
例如:
DWORD name = 0;
一般常常用在 結構體的定義,和函數指針上.
例如:
typedef struct MyStruct { int a; int b; }MyIntStruct;
那麽新的類型就是 MyIntStruct ,而這個類型就免去了你每次定義的時候加關鍵字了.
例如:
int main { // struct MyStruct IS; // 沒定義前,要使用上面 MyIntStruct IS; IS.a = 10; return 0; }
二丶作用域
在C語言中,編寫的代碼有作用域的限制.
作用域是什麽?
簡而言之,當我們定義變量的時候,這個變量的訪問.要在一定區域內才能進行訪問.
比如你在A函數定義變量a,在B函數定義變量b,那麽B函數是不能使用a變量的.
例如:
#include <stdio.h> voidprintfB() { int b = 11; printf("%d\r\n",b); } void printfA() { int a = 10; printf("%d\r\n",a); }
其中上面是函數作用域, 也就是 { } 塊語句包含的.
代碼塊作用域:
代碼塊作用域主要靠 { }來區分.
例如:
int main() { int a = 10; { int a = 11; printf("%d",a); //塊語句包圍 } printf("%d",a); return 0; }
如果這樣定義,則a不會重定義.且a = 11,在代碼執行到 } 結束後.也不復存在了.
文件作用域:
文件作用域就是代碼外面定義的. 也就是說全局變量. 全局作用域,在當前文件的任何一個位置都可以訪問的.
例如:
int a = 10; //外面聲明即可. int main() { printf("%d",a); return 0; }
C語言第四講,typedef 關鍵字,以及作用域