c語言更改類名,c語言文件改名

本文目錄一覽:

C語言問題 聲明新類型名 這是怎麼錯的 聲明新類型後該怎麼賦值?

你這個 輸出的 是地址 a[0] 這樣輸出 typedef 是 給 int 重新起個名字 num

可以使使用 #define

關於C語言的typedef?

這個是圖1正確。

typedef的用法簡單講就是將原來放變量名的地方用類型名替換就行了。

比如,定義一個int型變量是這樣的:

int a;

則定義一個類型為int就是用這個類型名替換變量名a,像這樣:

typedef int Integer;

同理,定義一個10個字符串的變量(其實就是char型指針數組)是這樣的:

char* s [10];

則定義一個10個字符串的類型就是這樣的:

typedef char* Strings[10];

就是用類型名Strings替換原來的變量名s。

在C語言中怎麼說明一種新的類型名?

那要看你想定義什麼類型了,

如果是結構體的話 struct s1{};

現在struct s1就是一個新的類型名。

union s2{};

現在union s2就是一個新的類型名

enum s3{0,1,2,3,4,5,6};

現在s3就是一個新的類型名。

其他的自定義類型,c語言不支持。

在C語言中typedef是什麼意思?幹什麼用的?

typedef是C/C++常用語法,typedef作用,歸結起來,可以分為四種:

1、定義一種類型名

常規的應用中,想要定義兩個字符指針,寫下如下代碼: char *a, b

(1)char* a,b;

(2)char c=’m’;

(3)a=c;

(4)b=c;

上述代碼是錯誤的,只有a為字符指針,b仍舊為字符變量。通過#define進行宏定義,仍然是無效的,因為宏定義僅僅是字符替換。

以下則可行:

(1)typedef char* PCHAR;

(2)PCHAR pa, pb;

2、用於struct結構體

(1)#include stdio.h

(2)struct tagPOINT1

(3) {

(4)int x;

(5)int y;

(6)};

(7)int main()

(8){

(9)tagPOINT1 p1,p2;//此句編譯無法通過

(10)//錯誤信息:error: unknown type name ‘tagPOINT1’

(11) //環境:Gcc 4.8.1

(12)}

必須採用如下定義;

(1)struct tagPOINT1 p1,p2;//必須有關鍵字 struct

(2)採用typedef,則可以省掉結構體定義時的struct

(3)ypedef struct tagPOINT

(4){

(5)int x;

(6)int y;

(7)}POINT;

(8)POINT p1; // 這樣就比原來的方式少寫了一個struct。

3、跨平台移植

程序編寫中,如果考慮到平台移植的因素,則需要從代碼中抽象出硬件層的差異,例如,變量所佔空間,端模式等等。

考慮一個浮點型變量,在不同的硬件平台上,所佔據的空間有可能不同,此時,可以採用typedef將其定義到單獨的頭文件內,該頭文件是純粹抽象硬件相關的內容:

(1)typedef float REAL;

(2)typedef short int INT16;

(3)typedef int INT32

(4)…

這樣的話,如果將來考慮到程序的移植,只需要修改該頭文件即可。

4、為複雜的聲明取別名

複雜的聲明形如:void (*b[10]) (void (*)());

意思:首先*b[10]為指針數組,它裡面的十個元素全是指針。到底是什麼指針呢,是一個返回類型為空,形參為空的函數指針。

這種複雜的聲明,可以用typedef進行簡化: 

首先:聲明後面的函數指針:

(1)typedef void (pFunParam *)();

接着聲明前面的指針數組:

(1)typedef void (*pFunx)(pFunParam);

原聲明的最簡化版:

pFunx b[10];

本文檔在撰寫過程中,參考了網絡博客typedef用法

裡面提到一個複雜的聲明:

(1)doube(*)() (*e)[9];

而然這個聲明在gcc下編譯時不通過的,按照作者的本意,似乎應該這樣聲明:

(1)double (*(*e)[9])();

e是一個指向9維數組的指針,數組內為函數指針,該函數指針形參為空,返回類型為double。

這樣的話,應該採用這樣的typedef來簡化聲明:

typedef (*(*ptr)[9])();

擴展資料

typedef為C語言的關鍵字,作用是為一種數據類型定義一個新名字。這裡的數據類型包括內部數據類型(int,char等)和自定義的數據類型(struct等)。

在編程中使用typedef目的一般有兩個,一個是給變量一個易記且意義明確的新名字,另一個是簡化一些比較複雜的類型聲明。

參考資料來源:百度百科-typedef

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150488.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-08 14:54
下一篇 2024-11-08 14:54

相關推薦

發表回復

登錄後才能評論