最近研究FreeBSD源码,先从简单的date命令的源码开始,今天先分析下库函数strtol()的实现,改天再把date.c的内容总结下贴上来。
strtol函数的功能是将字符串转化为长整形,可以实现2到n(n<36)进制到十进制整数的转化。
看代码之前先来学习下restrict的用法,restrict是c99引入的,它只可以用于限定指针,并表明指针是访问一个数据对象的唯一且初始的方式。也就是说,用restrict修饰的指针指向的对象,只能通过该指针或者具有这个指针的其他指针来访问。主要用于编译器优化代码,另外,在GCC可通过使用参数" -std=c99"来开启对C99的支持。