經常碰到typedef使用,今天又看到乙個是在標頭檔案裡的。大體如下: }}
(就是很多類似的函式宣告)
int sched_setaffinity(pid_t pid , size_t setsize , const cpu_set_t *set);
comment1:
這是乙個不完整的宣告,告訴編譯器有struct cpu_set_t 這麼乙個型別。
乙個常用的地方是:假如a、b兩個結構互相包含對方的指標:
typedef struct a;
typedef struct b;
struct a
;struct b
;另乙個作用是資訊隱藏
/* type.h */
typedef struct _type type;
void type_*** (type *type);
/* ... */
/* type.c */
#include "type.h"
struct _type;
comment2:
這是定義了乙個型別而已,在以後定義結構體的時候方便了很多,不用再加上struct了
總結:
typedef用來宣告新的型別名來代替已有的型別名
1. typedef int integer;
typedef float float;
integer a,b; float a,b
2. 可以用來宣告結構體型別
typedef struct
date;
宣告新型別名date,它代表上面指定的乙個結構體型別。這時就可以用date定義變數
date birthday;
date *p; // p為指向此結構體型別資料的指標
還可以進一步:
num n; (定義n為整形陣列變數)
string p,s[10]; (p為指標變數,s為指標陣列)
pointer p1,p2; (p1、p2為pointer型別的指標變數)
故typedef就是用如同定義變數的方法來宣告乙個型別
note:
typedef 與#define有相似之處:
typedef int count;
和 #define count int
作用都是用count代表int。而#define是在預編譯時處理的,它只能作簡單的字串替換,而typedef是在編譯時處理的,作用是宣告乙個型別
typedef用法總結
typedef,為現有資料型別建立乙個新的名字。typedef使用最多的就是建立易於記憶的型別名。型別出現在所宣告的變數名字中。例如typedef int size 此處宣告定義了乙個int的同義字,名字為size。主義typedef並不是建立新的型別。它僅僅是為現有型別新增乙個同義字,你可以在任何...
Typedef 用法總結
不管實在c還是c 中,typedef這個詞都不少見,當然出現頻率較高的還是在c 中。typedef與 define有些相似,但更多的是不同,特別是在一些複雜的用法上,就完全不同了,看了網上一些c c 的學習者的部落格,其中有一篇關於typedef的總結還是很不錯,由於總結的很好,我就不加修改的引用過...
typedef用法總結
define 是簡單的字串替換,相比 define,typedef可以用來定義乙個新型別,在c程式中比較常見。下面總結一下typedef的常用方法。1 定義一種型別,方便多多平台使用。如平台一 typedef long double real 平台一 typedef double real 平台一 ...