首页 > 其他分享 >【C语言_24】typedef关键词

【C语言_24】typedef关键词

时间:2022-10-15 12:00:10浏览次数:80  
标签:24 int32 typedef return int 别名 C语言 printf

1.typedef定义类型别名

定义int的别名int32_t:

typedef int int32_t;

2.typedef的使用

#include<stdio.h>
int main()
{
typedef int int32_t;//作用域:{}里申请的,只能在{}里用
int32_t n=666;
printf("n=%d",n);
return 0;
}

运行结果:

【C语言_24】typedef关键词_inttypes头文件

#include<stdio.h>
typedef int int32_t;//作用域:从声明开始直到该源文件结束
int32_t add(int32_t a,int32_t b)
{
return a+b;
}
int main()
{
int32_t a=111;
int32_t b=222;
int32_t sum=add(a,b);
printf("sum=%d",sum);
return 0;
}

运行结果:

【C语言_24】typedef关键词_stdint.h头文件_02

3.typedef经常被使用于结构

#include<stdio.h>
typedef struct{
char name[20];
int gender;
double height;
double weight;
}person;//person是这个结构类型的别名
int main()
{
person per={"李四",2,178.5,64.3};
printf("%s\t%d\t%.2lf\t%.2lf\t",
per.name,per.gender,per.height,per.weight);
return 0;
}

运行结果:

【C语言_24】typedef关键词_stdint.h头文件_03

4.typedef与#define的区别:

1.#define可以给数值定义别名,typedef不行

2.#define由预处理器处理,并且修改替换代码。

3.typedef不受预处理影响,在编译时由编译器处理

4.虽然#define也能为类型定义别名,但某些情况下,使用typedef更合适

5.提高整型的可移植性

  • 整型类型的别名无需自己定义
  • 编译器会根据本平台的整型范围大小,设置对应的别名
  • 添加头文件<stdint.h>就可以使用

【C语言_24】typedef关键词_stdint.h头文件_04

6.如何保证printf的可移植性呢?

int32_t n=666;
printf("n=%d",n);
//如果这个int32_t表示的是long,那就不应该是%d,而是%ld

如何避免这类错误呢?可以添加头文件<inttypes.h>

【C语言_24】typedef关键词_typedef_05

#include<stdio.h>
#include<stdint.h>
#include<inttypes.h>
int main()
{
int32_t n=666;
printf("n=%"PRId32"\n",n);
return 0;
}

运行结果:

【C语言_24】typedef关键词_inttypes头文件_06


持续更新【C语言】系列!有需要的请移步​​秃头程序媛主页​​!

标签:24,int32,typedef,return,int,别名,C语言,printf
From: https://blog.51cto.com/u_15420562/5759139

相关文章