![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言基础
chenxianda-3
这个作者很懒,什么都没留下…
展开
-
得到一个field在结构体(struct type)中的偏移量
from:http://blog.chinaunix.net/uid-21372424-id-120086.html宏定义:得到一个field在结构体(struct type)中的偏移量#defineOFFSETOF(type,field)((size_t)&(((type*)0)->field)) (type*)0:把0地址当成type类型的指针。 ...转载 2019-03-02 23:42:55 · 285 阅读 · 0 评论 -
总结一下宏和函数的区别
今天总结一下宏和函数的区别,还有各自的优缺点。宏在预处理阶段会被编译器替换掉,而且宏一般只做简单的文本替换,编译器对其不做任何的语法检测。宏定义时主要用于以下两方面:1、简单文本或字符串的替换;2、宏函数。对于宏函数,我们可能比较陌生,下面举例来介绍一下宏函数:#define SQUARE(x) ((x)*(x))int main(){ int input...转载 2019-03-02 23:43:55 · 272 阅读 · 0 评论 -
指针做形参,需要对指针进行修改时,函数参数需要改为指针的指针
一、用二级指针作为函数参数,有两种典型情况:1.需要传递一级指针的数组时:例如标准C的main函数:intmain(intargc,char*[]argv),数组最高维可以退化,char*[]argv等价于char**argv。这里argv代表命令行参数数组。2.需要对传入的一级指针进行修改时:例如:voidalloc_new_char_array(intn...转载 2019-03-02 23:46:15 · 2260 阅读 · 0 评论