程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 程序猿之---C語言細節21(#define和typedef區別、結構體細節)

程序猿之---C語言細節21(#define和typedef區別、結構體細節)

編輯:關於C語言

程序猿之---C語言細節21(#define和typedef區別、結構體細節)


主要內容:#define和typedef區別、結構體細節

#include  

#define INT_D int*
#define CHAR_D char 
int main()
{
	/*#define 與 typedef區別*/
	typedef int* INT_T;
	typedef char CHAR_T;
	 	
 	INT_T a,b;   // a、b都為int型指針 
 	INT_D c,d;   // c為int型指針、d為int整型 
 	
 	unsigned CHAR_D e;   // #define的類型定義可以類型擴展 
//	unsigned  CHAR_T f;  // 這句是錯誤的,typedef重定義類型不能加類型擴展 
 	
 	/* 結構體細節 */ 
 	//測試1 
 	struct foo{
	 	int foo;
	 } foo;  // 最後面的foo是結構體foo聲明的一個變量 
//	 foo test;  // 直接這麼定義一個結構體是錯誤的 
	 foo.foo= 1; // 結構體名可以和內部變量名一樣 
	 printf("foo = %d\n",foo.foo);
	 
	 //測試2 
    typedef struct fun{
    	int fun;
    }fun;
	fun fn;    // 這時可以定義

/*
	小結:
	1、不要為了方便起見對結構體使用typedef,這樣唯一好處就是你不用寫struct,但是這個關鍵字
	可以向你提示一些信息,不應該省掉 
	2、typedef用在數組、結構、指針以及函數的組合類型;可移植類型,當你需要一種至少20比特的類型時,可以進行
	typedef操作,這樣代碼移植到不通平台,要選擇正確類型如short、int、long時,只需要對typedef進行修改,而不用對
	每個類型修改 
	 
*/	
	return 0;
}

輸出:


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