小记:
宏定义
#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进行修改。