65,212
社区成员
发帖
与我相关
我的任务
分享
void putText()
{
cout<<"Hello World";
}
atexit(putText)
void putText(const string* str)
{
cout<<str;
}
int atexit(
void (__cdecl *func )( void )
);
这是atexit函数的原型说明,不能传递有参数的函数给atexit。
一个解决办法是使用全局变量。
以题目为例,可以在文件头部定义:
const string* str
#include <stdio.h>
#include <stdlib.h>
void func1(int status, void *arg);
int main(void)
{
int *p = malloc(sizeof(int));
*p = 7788;
on_exit(func1, p);
return 88;
}
void func1(int status, void *arg)
{
printf("status = %d\n", status);
printf("num = %d\n", *(int *)arg);
}