- 论坛徽章:
- 0
|
探讨C语言函数调用的一个问题
把你的函数放到动态连接库里面,然后在执行时动态加载,由文本文件读入要调用的函数名.当然,你必须了解函数的原型并给函数提供正确的参数,就像下面调用cos函数一样.
- #include <stdio.h>;
- #include <dlfcn.h>;
- int main(int argc, char **argv) {
- void *handle;
- double (*cosine)(double);
- char *error;
- handle = dlopen ("libm.so", RTLD_LAZY);
- if (!handle) {
- fprintf (stderr, "%s\n", dlerror());
- exit(1);
- }
- dlerror(); /* Clear any existing error */
- *(void **) (&cosine) = dlsym(handle, "cos");
- if ((error = dlerror()) != NULL) {
- fprintf (stderr, "%s\n", error);
- exit(1);
- }
- printf ("%f\n", (*cosine)(2.0));
- dlclose(handle);
- return 0;
- }
复制代码 |
|