问题和小记

2017-01-15  本文已影响0人  秣崖

小记:

宏定义

#define MAX(a,b)  (a)>(b)?(a):(b)

#给参数加括号是因为a,b可能为表达式

作用域

在子函数中的大括号中定义的变量要注意其作用域和生存周期问题,以及要着重注意是否在循环体内的问题

问题:

能否让一个子函数一次调用多次返回处理结果

处理方式:用多进程或者线程的方式,子函数循环调用,与父进程通信。

如何通过汇编来识别调用子函数时传入的地址上的数据类型。

关于数组的长度

到目前为止,只能做到规定最大长度来适应处理长度。

方案:通过设置一个指针,分别通过arr [ j ] 的方式进行储值。

结果:使用时,提示必须初始化,还是需要MALLOC分配最大空间的数组长度。

关于子函数

当需要用子函数处理同一数据,返回多个结果的时候,可以:

        通过传入指针参数记录处理结果来代替多个结果的返回。

关于字符数组

当前遇到的所有的char  arr[max]数组都不能访问arr[max]这个地址。

在vs中char arr[max]只能存储max-1 个字符,其自动添加结束符,并认定为max长度的字符串,对应的arr[max-1]用来存放‘\0’;

而在一些如linux中的c编译器,其可以添加

指针增减

记住:其永远是移动指针类型个单位,移动了sizeof(type)*num个地址单位,但是这个地址单位不能通过C进行修改。

探究结构体内存空间对齐问题

上一篇 下一篇

猜你喜欢

热点阅读