什么是"typedef int(*tMeshTable)(tOutPar*);" 做?

kel*_*vin 1 c

当我查看一些代码时,我发现了这个声明.

typedef int (*tMeshTable)(tOutPar *);  
Run Code Online (Sandbox Code Playgroud)

它的目的是什么?

xax*_*xon 6

tMeshtable typedef将成为一个指向函数的指针,该函数获取tOutPar指针并返回一个int.

每次都说tMeshTable比整个事情更容易.

所以当你想把它传递给一个函数时,例如:

void functionThatCallsFunction(tMeshTable myFunction) {
    tOutPar * outPar;
    /* This next line calls the function that was passed into this function as a parameter */
    int result = (*myFunction)(outPar);
}
Run Code Online (Sandbox Code Playgroud)

它看起来比原始函数指针语法更清晰.

该页面讨论了所有关于函数指针的内容.你应该看看:http: //www.newty.de/fpt/fpt.html