物品:
如果我告诉你写一个程序来维护一组计数器,但计数器的数量将由用户在启动程序时输入。我们使用分配在堆上的整数数组对此进行编码。
int *counters = malloc(numOfCounters * sizeof(int));
Malloc 直接使用内存,因此它本质上返回一个指针。所有 Objective-C 对象都是用 进行堆分配的malloc
,所以它们总是指针。
物品:
如果我告诉你给我写一个读取文件的函数,然后在完成后运行另一个函数会怎样。但是,这个其他功能是未知的,并且会被其他人添加,我什至不认识的人。
为此,我们有“回调”。您将编写一个如下所示的函数:
int ReadAndCallBack(FILE *fileToRead, int numBytes, int whence, void(*callback)(char *));
最后一个参数是指向函数的指针。当有人调用您编写的函数时,他们会执行以下操作:
void MyDataFunction(char *dataToProcess);
ReadAndCallBack(myFile, 1024, 0, MyDataFunction);
物品:
将指针作为函数参数传递是从函数返回多个值的最常见方式。在 OSX 上的 Carbon 库中,几乎所有的库函数都返回错误状态,如果库函数必须返回对程序员有用的东西,就会出现问题。所以你传递你希望函数将信息传回给你的地址......
int size = 0;
int error = GetFileSize(afilePath,&size);
如果函数调用返回错误,则它在 中error
,如果没有错误,error
则可能为零并且size
包含我们需要的内容。