C语言中typedef和define对比分析

简介: C语言中typedef和define对比分析

前言

相信很多同学都知道typedef和define但是有很多同学不知道什么时候使用typedef什么时候使用define那么下面就让我用一篇文章解决大家的疑问


一、typedef作用及用法

1.typedef作用

1.typedef用于给一个已经存在的数据类型重命名

2.typedef本质上不是产生新的类型


2.typedef用法

#include <stdio.h>
typedef int u32;
int main(void)
{
    u32 a = 1;
    printf("int size is %d u32 size is %d\n", sizeof(int), sizeof(u32));
    return 0;
}

运行结果

image.png

从代码和结果上来看typedef并不能产生新的数据类型,只是给已经存在了的数据类型重命名。


二、define作用及用法

1.define作用

1.define定义的宏可以在程序的任何位置使用

2.define定义之后的代码都可以使用这个宏

3.define可以定义常量并且这个常量不可被修改


示例:

#include <stdio.h>
#define ONE 1
int main(void)
{  
    printf("%d\n", ONE);
    return 0;
}

三、typedef和define区别

1.typedef是在程序编译时起作用,而define是在程序预编译时进行替换。

2.typedef会检查语法的正确性,define只是单纯的替换不会检查语法的正确性

下面程序中使用define方法不会报错,而使用typedef则是错误的

#include <stdio.h>
#define ONE adawdawdawd
typedef ONE adawdwadawdawda
int main(void)
{
    return 0;
}

总结

typedef和define的对比就到这里了,希望大家对typedef和define的认识更加深刻了,有什么不懂的话可以在评论区留言。

相关文章
|
1月前
|
前端开发 C语言
C语言06-HelloWorld执行流程分析
C语言06-HelloWorld执行流程分析
C语言06-HelloWorld执行流程分析
|
3月前
|
存储 XML JSON
【C语言-通讯录的分析与实现】
我们以手机里面的通讯录为例,说明通讯录主要有以下什么功能,我们先用一张简单的图来说明一下
31 0
|
6天前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
6天前
|
C语言
【C语言刷题训练】——第7节(含代码与分析思路)
【C语言刷题训练】——第7节(含代码与分析思路)
|
6天前
|
存储 C语言
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
|
3月前
|
编译器 C语言
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
|
2月前
|
程序员 C语言 C++
【C语言基础】:动态内存管理(含经典笔试题分析)-2
【C语言基础】:动态内存管理(含经典笔试题分析)
|
2月前
|
程序员 编译器 C语言
【C语言基础】:动态内存管理(含经典笔试题分析)-1
【C语言基础】:动态内存管理(含经典笔试题分析)
|
2月前
|
C语言
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
22 1
|
2月前
|
存储 C语言
C语言中的typedef关键字:为类型定义新名称
C语言中的typedef关键字:为类型定义新名称
34 0