1. 程式人生 > >C語言中typedef關鍵字的作用

C語言中typedef關鍵字的作用

C 語言提供了 typedef 關鍵字,可以使用它來為型別取一個新的名字。
下面的例項為單位元組型別定義了一個術語 BYTE:

typedef unsigned char BYTE;

在這個型別定義之後,識別符號 BYTE 可作為型別 unsigned char 的縮寫,例如:

BYTE  b1, b2;

typedef 常給結構體型別命名

#include <stdio.h>
#include <string.h>

typedef struct Book {
    char *name;
    int id;
} Book;

int main() {
    Book book; // Book 命名了我們的型別
book.name = "C教程"; book.id = 12345; printf("書標題 : %s\n", book.name); printf("書ID : %d\n", book.id); return 0; }
書標題 : C教程
書ID : 12345

typedef 與 #define 的區別

#define 是 C 指令,也用於為各種資料型別定義別名,與 typedef 類似,但是它們有以下幾點不同:

  • typedef 僅限於為型別定義符號名稱,#define 不僅可以為型別定義別名,也能為數值定義別名,比如您可以定義 1 為 ONE。
  • typedef 是由編譯器執行解釋的,#define 語句是由預編譯器進行處理的。
#include <stdio.h>

#define TRUE  1
#define FALSE 0

int main() {
    printf("TRUE 的值: %d\n", TRUE);
    printf("FALSE 的值: %d\n", FALSE);
    return 0;
}
TRUE 的值: 1
FALSE 的值: 0

相關推薦

C言中typedef關鍵字作用

C 語言提供了 typedef 關鍵字,可以使用它來為型別取一個新的名字。 下面的例項為單位元組型別定義了一個術語 BYTE: typedef unsigned char BYTE; 在這個型別定義之後,識別符號 BYTE 可作為型別 unsigned c

C言中static關鍵字作用

編譯 size lac 所有 指針 變量 運行時 http 多個 在C語言中static的作用如下 第一、在修飾變量的時候,static修飾的靜態局部變量只執行一次,而且延長了局部變量的生命周期,直到程序運行結束以後才釋放。 第二、static修飾全局變量的時候,這個全局變

C言中volatile關鍵字作用

本文為轉載總結文章:點選進入原地址 用volatile修飾變數的時候,意指系統總是重新從它所在的記憶體讀取資料。遇到這個關鍵字宣告的變 量,編譯器對訪問該變數的程式碼就不再進行優化,從而可以提供對特殊地址的穩定訪問。 舉一個容易理解的例子: volatile int i=10;

C言中static關鍵字作用詳解

在C語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,一個是a.c,另一個是

C言中typedef和sizeof的註意事項

isp sizeof spa 註意 list數據 對象 audio 應該 user typedef的作用是給一個數據類型起一個別名。 typedef struct LIST { int data; }SeqList; SeqList 就相當於struct LIS

C言中typedef的解釋

詳解 efi char bsp 作用 get static 參考 ++ typedef是在計算機編程語言中用來為復雜的聲明定義簡單的別名,它與宏定義有些差異。 它本身是一種存儲類的關鍵字,與auto、extern、mutable、static、register等關鍵字不能出

C言中const關鍵字

關鍵字const用來定義常量,如果一個變數被const修飾,那麼它的值就不能再被改變,我想一定有人有這樣的疑問,C語言中不是有#define嗎,幹嘛還要用const呢,我想事物的存在一定有它自己的道理,所以說const的存在一定有它的合理性,與預編譯指令相比,const修飾符有以下的優點

C言中restrict的作用

    關鍵字restrict通過允許編譯器優化某幾種程式碼增強了計算支援。記住,它只能用於指標,並且表明指標是訪問一個數據物件的唯一且初始的方式。為了清楚為何這樣做,我們需要看一些例子: int ar[10]; int* restrict restar = (int*

c言中static關鍵字用法詳解

概述 static關鍵字在c語言中比較常用,使用恰當能夠大大提高程式的模組化特性,有利於擴充套件和維護。 但是對於c語言初學者,static由於使用靈活,並不容易掌握。本文就static在c語言中的應用進行總結,供參考使用。錯漏之處,請不吝指正。 在程

C言中const關鍵字的用法

關鍵字const用來定義常量,如果一個變數被const修飾,那麼它的值就不能再被改變,我想一定有人有這樣的疑問,C語言中不是有#define嗎,幹嘛還要用const呢,我想事物的存在一定有它自己的道理,所以說const的存在一定有它的合理性,與預編譯指令相比

C言中static的作用C語言中使用靜態函式有何好處

在C語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條,分別是: 一是隱藏功能,對於static修飾的函式和全域性變數而言 二是保持永續性功能,對於static修飾的區域性變數而言。 三是因為存放在靜態區,全域性和區域性的static修飾的變數,都預設初始化為0 下面我逐一給

C言中typedef和define的區別

    正確思考typedef和巨集文字替換直接的區別關鍵在於就是把typedef看成一種徹底的“封裝”型別——在宣告它之後不能在裡面增加別的東西。它和巨集的區別主要體現在兩個方面。    一、可以用其他型別說明符對巨集型別名進行擴充套件,但對typedef所定義的型別名卻不

C言中typedef struct和struct的區別:

typedef struct CLinkList {     int data;     struct CLinkList *next; }node; 上面的CLinkList是識別符號,node是變數型別(相當於(int,char等))。 這語句實際上完成兩

C言中typedef不能與儲存型別指示符同時用

C語言中,經常有如下的用法: typedefstruct  tag {     ... } MyType, *MyPtr; 一旦通過如上定以後,就可以用MyType來定義struct tag結構了。 以前我使用typedef的時候,是按照其字面意思理解的,所以進入了一個誤區

C言中volatile關鍵字詳解

volatile關鍵字詳解,以及在嵌入式中的應用 volatile 關鍵字的作用是作為指令關鍵字,確保本條指令不會因為編譯器的優化而省略,且要求每次直接讀值。 關鍵字 volatile 是與 const 絕對對立的。二、在嵌入式中使用volatile 變數如果加了 volat

C言中typedef

中文 講解 tro table 現在 int 一個 cor 位置 typedef 的講解與應用實例   前言:我們學過C語言的人都應該聽過,或者說學過,甚至說用過typedef,多多少少都對其有所了解。不過就算沒聽過也沒關系,我們一起來探討一下。   闡述:typedef

C言中的struct和typedef struct<轉載>

對象 內部數據 編程 都是 內部 pre title HR 聲明 原文:http://www.nowamagic.net/librarys/veda/detail/1785 typedef為C語言的關鍵字,作用是為一種數據類型定義一個新名字。這裏的數據類型包括內部數據類

c言中external,static關鍵字用法

static用法: 在C中,static主要定義全域性靜態變數、定義區域性靜態變數、定義靜態函式。 1、定義全域性靜態變數:在全域性變數前面加上關鍵字static,該全域性變數變成了全域性靜態變數。全域性靜態變數有以下特點。 a.在全域性區分配記憶體。 b.如果沒有初始化,其預設值為

C言中static的常見作用

有興趣學習c/c++程式設計的小夥伴可以進群:941636044 一起交流哦~ C程式一直由下列部分組成: 1)正文段——CPU執行的機器指令部分;一個程式只有一個副本;只讀,防止程式由於意外事故而修改自身指令; 2)初始化資料段(資料段)——在程式中所有賦了初值的

C言中,標頭檔案的作用,標頭檔案和原始檔的關係(轉)

簡單的說其實要理解C檔案與標頭檔案(即.h)有什麼不同之處,首先需要弄明白編譯器的工作過程,一般說來編譯器會做以下幾個過程: 1.預處理階段  2.詞法與語法分析階段  3.編譯階段,首先編譯成純彙編語句,再將之彙編成跟CPU相關的二進位制碼,生成各個目標檔案 (.obj檔案) 4.連線階段,將各個目標檔