首页
学习
活动
专区
工具
TVP
发布

C语言typedef VS define,孰优孰劣?

typedef

C 语言提供了typedef关键字,您可以使用它来为类型取一个新的名字。

下面的实例为单字节数字定义了一个术语BYTE:

typedef unsigned char BYTE;

在这个类型定义之后,标识符 BYTE 可作为类型unsigned char的缩写,例如:

BYTE b1, b2;

按照惯例,定义时会大写字母,以便提醒用户类型名称是一个象征性的缩写,但您也可以使用小写字母,如下:

typedef unsigned char byte;

您也可以使用typedef来为用户自定义的数据类型取一个新的名字。例如,您可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量,如下:

实例

当上面的代码被编译和执行时,它会产生下列结果:

书标题 : C 教程

书作者 : Runoob

书类目 : 编程语言

define

一般用法:

#define 标识符字符串

在预编译过程中,将标识符替换为字符串

#define是 C 指令,用于为各种数据类型定义别名,与typedef类似,但是它们有以下几点不同:

typedef仅限于为类型定义符号名称,#define不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。

typedef是由编译器执行解释的,#define语句是由预编译器进行处理的。

#define只进行简单的文本替换,不进行类型匹配

下面是 #define 的最简单的用法:

实例

#include

#define TRUE 1

#define FALSE 0

int main( )

{

printf( "TRUE 的值: %d ", TRUE);

printf( "FALSE 的值: %d ", FALSE);

return 0;

}

当上面的代码被编译和执行时,它会产生下列结果:

TRUE 的值: 1FALSE 的值: 0

希望小编文章的朋友可以关注、收藏、转发,私信,阅读愉快!!!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180604A1Z3GB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券