除了可以直接使用c提供的標準型別名(如int char float等)和自己宣告的結構體等型別外,還可以用typedef宣告新的型別名來代替已有的型別名。
習慣上常把typedef宣告的型別名用大寫字母表示,以便與系統提供的標準型別識別符號相區別
1、typedef int integer;
typedef float real;
如果乙個程式中,乙個整形變數用來計數,可以
typedef int count;
count i,j;
2、可以宣告結構體型別
typedef struct
date;
宣告新型別名date,它代表上面指定的乙個結構體型別。這時,就可以用date定義變數:
date brithday;
date * p;
3、還可以進一步:
1)、typedef int num[100];
num n;
宣告num為整形陣列型別,定義n為整形陣列變數;
2)、typedef char * string;
string p,s[10];
宣告string為字元指標型別
3)、typedef int (* pointer)( )
宣告pointer為指向函式的指標型別,該函式返回整型值;
1】注意#define是在預編譯時處理的,它只能作簡單的字串替換,而typedef 是在編譯時處理的。實際上它並不是作簡單的字串替換。
2】當不同原始檔中用到同一型別資料時,常用typedef宣告一些資料型別,把它們單獨放在乙個檔案中,然後在需要用到它們的檔案中用#include命令把它們包含進來。
3】使用typedef有利於程式的通用和移植。有時程式會依賴硬體特性,用typedef便於移植。例如,有的計算機系統int型資料用兩個位元組、資料範圍為-32768~32767,而另外一些機器則以4個位元組存放乙個整數,數值範圍為+-21億。如果把乙個c程式從乙個以4個位元組存放整數的計算機系統移植到以2個位元組存放整數的系統,按一般方法需要將定義變數中的每個int改為long。例如,將「int a,b,c;」改為「long a,b,c;」,如果程式中有多處用int 定義變數,則要改動多處。現在用乙個integer 來宣告int:
typedef int integer;
在程式中所有整型變數都用integer定義。在移植時只需改動typedef定義體即可:
typedef long integer;
普通結構體宣告時使用只struct關鍵字,而鍊錶需要typedef struct,比較疑惑他們之間的區別
(1) 在c中定義乙個結構體型別要用typedef:
typedef
struct student
stu;
則宣告變數是這種形式:stu stu1;
如果沒有typedef就必須用struct student stu1;來宣告。stu實際上就是struct student的別名。
另外這裡也可以不寫student
typedef
struct
stu;
則宣告形式必須是stu stu1;
2)在c++中定義乙個結構體型別:
struct student
;
於是就定義了結構體型別student,宣告變數時直接student stu2
typedef
struct student2
stu1;//stu1是乙個結構體型別
struct student
stu2;//stu2是乙個變數
注意帶typedef關鍵字,其就為型別,不帶就為變數
還應該注意的是,c++為了c程式設計師的習慣,保留了struct關鍵字,但是其意義與class相同,唯一的區別是struct預設成員許可權為public。
3) 鍊錶的宣告
//方式1
typedef
struct listnode
node,*linklist;
//方式2
struct listnode
; typedef
struct listnode node;
typedef node *linklist;
//方式3
typedef
struct listnode node;
typedef node *linklist;
因為都有typedef關鍵字,所以後面宣告的都是型別。其中node與linklist本質是一樣的,只不過乙個是node型別結構體,乙個是指向node的指標。但是理解時linklist應該是高層次的意義,即乙個鍊錶。 在IntelliJ IDEA中使用struts2
因為老師都是在eclipse上寫,為了在idea上使用struts2折騰了好久,網上大都是在專案建立的時候使用,所有都幫你配置好了,而我是因為跟著課程所有要在現有專案上修改新增,手動配置,就遇到挺多坑。方法一 在建立專案時勾選 自動生成相關配置檔案 增加修改相關配置檔案web.xml struts2...
研究了一下tomcat提交亂碼和struts
1.get方法,在tomcat的配置裡加上 uriencoding utf 8 具體檔案是 tomcat conf server.xml 結點 server service connector 2.post方法,使用enctype multipart form data 這樣就不會有亂碼,如果後端是...
python學習筆記7 5 內建模組struct
python中變數的型別只有列表 元祖 字典 集合等高階抽象型別,並沒有像c中定義了位 位元組 整型等底層初級型別。因為python本來就是高階解釋性語言,執行的時候都是經過翻譯後再在底層執行。如何打通python和其他語言之間的型別定義障礙,python的內建模組struct完全解決了所有問題。在...