1. 程式人生 > >C語言第四講,typedef 關鍵字,以及作用域

C語言第四講,typedef 關鍵字,以及作用域

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>

void
printfB() { 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 關鍵字,以及作用域