麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

詳解C語言中#define與typedef的互換細節

2020-02-24 14:26:37
字體:
來源:轉載
供稿:網友

C/C++語言是語言編譯過程的一部分,define通常是用于數據類型,而typedef通常是用于標識符,接下來武林技術頻道小編將為大家詳解C語言中#define與typedef的互換細節,一起來了解一下吧!

?

#include <stdio.h>
/*<---------?????????? #define??? string??? char *??????????? ---->*/
typedef?? char *?? string;??????

?

int main(void)
{
?? string?? a[] = {"I", "like", "to", "fight,"},
?? b[] = {"pinch,", "and", "bight."};
?? printf("%s %s %s %s %s %s %s/n", a[0], a[1], a[2], a[3], b[0], b[1], b[2]);
?? return 0;
}


用#define替換掉typedef的行,并且,已經給出的#define示例不能通過,但是,程序中只要添加一個字符,就可以了.

?

====================這個問題的解答===========================

有下面兩種定義pStr數據類型的方法,兩者有什么不同?哪一種更好一點?
typedef char* pStr;
#define pStr char*;


答案與分析:

通常講,typedef要比#define要好,特別是在有指針的場合。請看例子:
typedef char* pStr1;
#define pStr2 char *
pStr1 s1, s2;
pStr2 s3, s4;

在上述的變量定義中,s1、s2、s3都被定義為char *,而s4則定義成了char,不是我們所預期的指針變量,根本原因就在于#define只是簡單的字符串替換而typedef則是為一個類型起新名字。
上例中define語句必須寫成 pStr2 s3, *s4; 這這樣才能正常執行。

所以程序

?

#define??? string??? char *;???????
int main(void)
{
?? string?? a[] = {"I", "like", "to", "fight,"},
?? *b[] = {"pinch,", "and", "bight."};?? /*<--就是這里!!--*/
?? printf("%s %s %s %s %s %s %s/n", a[0], a[1], a[2], a[3], b[0], b[1], b[2]);

?

?? return 0;
}

以上就是詳解C語言中#define與typedef的互換細節,都了解了嗎?如果你還是有不清楚的地方,你可以隨時來關注武林技術頻道的最新消息。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 成人午夜视频免费看 | 欧美激情999 | 久久久一区二区三区精品 | www.91成人| 色网站综合 | 日日狠狠久久偷偷四色综合免费 | 中文字幕xxx | 成人在线观看免费高清 | 日日影视| 狠狠99| 久草在线精品观看 | 国产精品视频专区 | 大号bbwassbigav头交 | 精品人成 | 91久久免费 | 国产喷白浆10p | 午夜精品视频在线 | 操碰在线视频 | 粉嫩粉嫩一区二区三区在线播放 | 久久久久久久久久久国产精品 | 日本欧美视频 | 少妇一级淫片免费放4p | 极色品影院 | 中文字幕专区高清在线观看 | 亚洲网站免费观看 | 九九热视频这里只有精品 | 国产精品久久久久久久久久大牛 | 一色屋任你操 | 伊人999| 欧美一级黄色片在线观看 | 国产1区在线观看 | 黄色网址进入 | 亚洲视频成人在线 | 99re热视频这里只精品 | 羞羞视频免费观看网站 | 色婷婷久久久 | 中文字幕免费在线看 | 日本中文字幕电影在线观看 | 56av国产精品久久久久久久 | 天天夜干| 99国产精品白浆在线观看免费 |