浅谈typedef与define

本文深入探讨了C语言中的typedef和#define的区别,static关键字的作用及const的使用技巧。通过对比分析,帮助读者理解这些特性的应用场景及其对代码质量和可维护性的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看了一下书,感觉typedef确实不错,相比define,不过实际上是各有千秋的。

现在就来看看两者各自的优缺点吧。

一:typedef与define

(1)define是预处理指令,在编译预处理时进行简单的替换,不做正确性的建和擦,不管含义是否正确照样进行替换,只有在编译已被展开的源程序时才会发现可能的错误并出错。

(2)typedef作用时声明一个新的类型名代替已有的类型名,是在编译时处理的。它在自己的作用域内给一个已经存在的类型一个别名,他是语言编译过程的一部分,并不实际分配内存空间



二:static:

在c语言中,它有三个主要的作用:

在一个函数体中,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

在模块内(在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其他函数访问。它是一个本地的全局变量

在模块内,一个被声明的静态的函数只能被这一模块内的其他函数调用,那就是,这个函数被限制在声明它的模块的本地范围中使用

总结一下,就是它起到限制变量的作用域和设置变量的存储域的作用。


三:const


const意味着只读:

const int s;    int const a;这两个作用是一样的。

const int *a;a 是一个指针,这个指针指向常整数型,指针可变,但是整形数不可变。

int * const a;a是一个指向整数型的常指针,也就是指针不可变,而整数是可以变的。

合理使用const可以很自然地保护那些不希望被改变的参数,减少debug

而且将变量声明为常量就是为了告诉用户这个参数的应用目的

能够产生更加紧凑的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值